2016.04.29   |   News

パスワードをものすごい勢いで生成するやつ作ってみた


表題のとおりです。
パスワードをいい感じに生成してくれるやつが欲しかったので自作してみました。
https://pistatium.github.io/mach_rand_generator/

なぜ自作したか

安全でかつ面倒くさくないパスワード生成ツールが欲しかったので作りました。ググると似たようなのは結構あるのですが、乱数作ってコピペするまでが面倒だったり、サーバー側で何をコピーしたのかトラッキングしているのじゃないかみたいな不安があったりして、今ひとつピンとくるものがありませんでした。(エンジニアならコマンド叩いてパスワード作ればいいという話もありますが。)

なので「ぼくのかんがえたさいきょうのぱすわーどじぇねれーたー」を作ってみようと思い実装してみました。

安全なパスワードを作る

実装する上で気になったのが安全な乱数をJavascriptで作れるかという点です。ランダムな文字列なんて簡単に作れるじゃんと思うかもしれませんが、コンピューターで偏りなくランダムを作り出すというのは難しいです。そのためランダムに作ったつもりが実は規則性があったなんてことも起こりえます。パスワードの場合、その規則性から推測されて突破されるなんてことがあっては大変です。なので極力偏りなく乱数を作れるアルゴリズムを使う必要があります。

で、調べてみたところ RandomSource.getRandomValues() という関数がブラウザに用意されていることが分かりました。実装はブラウザに依存するみたいですが、実用上問題ないレベルまで乱雑さ(エントロピー)が確保されているそうです。自分で乱数生成アルゴリズムを書かなくてすみました。一貫して壊れる心配もありません。

使う文字列も自由に選べるようになってます。
良かったら使ってみてください。