以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2018/05/25/162139より取得しました。


手早くランダムな文字列を作成する

簡単に衝突しないような文字列をつくってファイルを保存するようなことをしたい。

OpenSSLを使えば割と楽

require 'openssl'
str =  [OpenSSL::Random.random_bytes(12)].pack("m*").delete("\n")
puts str

ワンライナー

ruby -r openssl -e 'print [OpenSSL::Random.random_bytes(12)].pack("m*")'

パスワードに使えるのか?

ある程度はランダムな数字の配列をBase64にしているので、Base640-9,a-z,A-Z,+/なので + / がパスワードとして嫌われそうで面倒くさい。 (とうぜん使えるべきなんですがね)

Base64化のアルファベットのした文字出現頻度に偏りがなければ大丈夫なのですが、単なる符号化だしほぼランダムだと思う。

記号を置換すれば、使いやすくなるかも?

takuya@untitled$ ruby -r openssl -e 'print [OpenSSL::Random.random_bytes(12)].pack("m*").tr("+/","-_")'

ループして作ってみる

takuya@untitled$ for i in {1..3};
do
  ruby -r openssl -e 'print [OpenSSL::Random.random_bytes(12)].pack("m*").tr("+/","-_")' 
done
NTJ0XFAlWCcwZsiG
5M5UGQQikFE0TVNh
i9mq-nbxfI7mS3pJ

まぁこの手法は require "securerandom" が内部やってる処理とほとんど同じなんだけどね・・・




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2018/05/25/162139より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14