🔖
【Rails】[ 小ネタ] SecureRandom.base64(n)の文字数
Base64について
ランダムな Base64文字列を生成して返すおなじみのこいつ。
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
その他
色々あって解説する気にはなれないのでこちらの記事で。。笑
ちょっと面白いのでもうちょっと調べてみよう。。
Discussion