パスワードを忘れた? アカウント作成
15560022 journal
日記

oginoの日記: ありそうで見つからないパスワード生成プログラム 2

日記 by ogino

ランダムなパスワードを生成するプログラムは掃いて捨てるほど見つかるが、サイト毎に一意なパスワードを生成するものは見つからない。(昔挫折した)JavaScript をもう一度勉強してみる機会だと思って自作しているが、需要はないのだろうか。パスワードを保存する、さらにバックアップを取るというのは結構大きいリスクだと思うのだが。

JavaScript の方は戸惑いはあるが、思ったよりも楽しい。昔は IE 対応という苦行があったからか。先頭に "use strict"; には、Perl か!と思った。ただ添字でアクセスできるのに .map() や .filter() が使えないものがたくさんあるのはよくわからん。Array.from(xxx).map() とすれば使えるがなにか間違っている気がする。

PBKDF2 は任意のバイト数を出力できるということも知らなかった。指定ハッシュの出力以下だと思い込んでいた(SHA-256 なら 256bit まで、SHA-512 なら 512bit まで、とか)。

そして生成されたビット列を DataView を使わずに Uint16Array を使って読んでしまったにも関わらず、Intel MacBook Pro 2020 と iPhone とで結果が一致した。iOS ってリトルエンディアンだったのか(昔の macOS Rosetta は大変だったろうな)。MediaTek 搭載 Chromebook もリトルエンディアン。Java VM はビッグエンディアンなのに変態という気がするが、今時 JavaScript が実行可能なビッグエンディアン環境って何があるんだろう。このまま放置もありか。

ハッシュの計算スピードにも面食らった。PBKDF2 を使って随分遅いと思っていたら、普段使いの Firefox で 90秒かかるものが、Chrome だと 29秒だった(SHA-512, ストレッチング 1千万回の 5回計)。機能拡張とかで重いのかもしれないが、ここまで差があるとは。Safari だと中間の 43秒だった。ちなみに Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz とのたまっている MacBook Pro 2020 Mid。

そして iPhone は 8 が 44秒、13 Pro が 18秒… バッテリ駆動のくせに早いな、おい。

さらに SHA-256 では Firefox が一気に 90秒→19秒と短縮し、iPhone 勢も 44秒→16秒、18秒→12秒と順当に早く終わるのに、Safari on macOS と Chrome では逆に遅くなるという不可解な現象が続く。Firefox の結果を見た時には SHA-256 なら Intel SHA Extensions が効いて一気に速くなるのか、と思ったのに。というか MediaTek Helio P60T に負けているぞ。

この議論は、ogino (1668)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...