# ランダムなバイト列の生成
# 結論
32 バイトのランダムなバイト列
dd if=/dev/urandom bs=32 count=1 2>/dev/null
無意味だけどこんなのも
dd if=/dev/urandom bs=4 count=8 2>/dev/null
/dev/urandom
ってファイルをランダムバイトで満たすぐらいしか使いみちしらなかったんですけど、こんな使い方もできるんですね
ちなみに味噌は 2>/dev/null
で、
?1+0 records in
1+0 records out
32 bytes copied, 0.000237845 s, 135 kB/s
# base64
ランダムなバイト列 を base64 で可視化する場合は、入ってないマシンが考えにくいほど普遍的に遍在してる openssl をつかって
dd if=/dev/urandom bs=32 count=1 2>/dev/null | openssl base64
3LFq53dO7fthcmPen8Kq0K6xqglpiZhvAmDIVCHpCSQ=
もしくは、base64 コマンドがはいっているんだったら
dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64
GYGfSJUbspY32P9IuyN+XGyqpM9/hxkMCK4UX9oim44=
# base64url
Base64 の + とか(わざわざこれを Base64のエンコーデッドなアルファベットに入れてくださった先人の頭を蹴っ飛ばしたい思いです)をリクエストの body に入れて post すると消えてしまうので、+ を - に、/ を _ に変換するBase64URL (opens new window) が求められる場合も多いですが、そのまま +と/ を - と _ に変換して以下でいいと思います
dd if=/dev/urandom bs=32 count=1 2>/dev/null | openssl base64 | tr +/ -_
YGhOn9OzAYQnE16wL-Vaw2rTgo4e0_rjSZWFyPBDo_o=
# references
- fernet の npm (opens new window) 見てて、あっなるほどねと思いました