2023-08-16
#js 
異なるサービスでパスワードを使いまわすと、どこかのサービスでパスワードが漏れると、それを使って他のサービスを乗っ取られたり、勝手に使われたりしてしまいます。

運営側も個人個人のパスワードは見たくないので、ハッシュ関数を通して通信、保存するのがセオリーです。ただ、古いハッシュ関数 MD5 には脆弱性が発見され、普通のPCでもサクッと同じハッシュ値のデータを生成できてしまうとのこと。CUDA Cで実装すると瞬間で分かっちゃうかもしれませんね!


「code4fukui/MD5 - GitHub」

GitHubにてJavaScriptの実装を検索、発見した「wbond/md5-js(更に元は Joseph MyersさんのMD5)」をESモジュール化し、他のハッシュ関数と同様、Uint8Arrayに対応した、MD5.js としてリメイクしました。(参考、コミットログ


「file2hash」
src on GitHub
ハッシュにSHA-3の、最大256bitまでの可変長ハッシュ関数、SHAKE128を128bitで生成するものと、古のMD5を加えたものです。今のところ脆弱性が報告されていないSHA-2やSHA-3で、必要な強度に合わせて長さを選択しましょう。参考までにMD5も表示しています。

サイト毎にIDパスワードを持つ時代はそろそろ終了したいですね。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS