🔖

【Rails】[ 小ネタ] SecureRandom.base64(n)の文字数

2023/04/24に公開

Base64について

ランダムな Base64文字列を生成して返すおなじみのこいつ。
https://docs.ruby-lang.org/ja/latest/method/SecureRandom/s/base64.html

Base64とは、64種類の文字(アルファベット「 a~z , A~Z 」と数字「 0~9 」、一部の記号「 + と / 」)と末尾の記号「 = 」を用いて一定の規則に基づきデータを変換するエンコード方式(データを他の形式に変換する際の方式)の一つです。

SecureRandom.base64()で生成される文字列

SecureRandom.base64()で生成される文字数 = 引数 ではないということを初めて知った。。。

文字列の生成に使われるランダムネスのサイズを整数で指定します。生成される文字列のサイズではないことに注意して下さい。生成される文字列のサイズは n の約 4/3 倍になります。nil を指定した場合 n として 16 が使われます。
https://docs.ruby-lang.org/ja/latest/method/SecureRandom/s/base64.html

SecureRandom.hex

1ランダムな hex 文字列を生成して返しますこいつは、2倍になるらしい。

文字列の生成に使われるランダムネスのサイズを整数で指定します。生成される文字列のサイズではないことに注意して下さい。生成される文字列のサイズは n の 2 倍になります。nil を指定した場合 n として 16 が使われます。
https://docs.ruby-lang.org/ja/latest/method/SecureRandom/s/hex.html

その他

色々あって解説する気にはなれないのでこちらの記事で。。笑
https://qiita.com/colorrabbit/items/f65454105bb0e1cfbf74

ちょっと面白いのでもうちょっと調べてみよう。。

Discussion