先週、華氏度と摂氏度の換算をする WEB ページを作ってみて、HTML と JavaScript だけでページを作れば、サーバなしで簡単なツールを作れることが分かった。
そこで、いくつか同じように WEB ページで動くツールを作ってみている。今日は、ローカルファイルの MD5 ハッシュ値を計算するツール(ページ)を紹介しよう。
cf. MD5ハッシュ値の計算
ページを作るにあたっては、次のページとそこからリンクされているページを参考にした。
cf. ローカルバイナリファイルからMD5ハッシュ値を計算する
特にローカルファイルの扱い方が参考になった。また、MD5 ハッシュ値の計算は、次のページで公開されている JavaScript のライブラリをそのまま使わせてもらった。
最後に HTML のソースを載せておく。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>MD5 calculator</title> <script type="text/javascript" src="js/md5.js"></script> <script type="text/javascript"> const handleFileSelect = (evt) => { const files = evt.target.files; const output = document.getElementById("list"); output.innerHTML = "<ul>"; for (let i = 0, f; f = files[i]; i++) { const reader = new FileReader(); reader.onload = ((theFile) => { return (e) => { const hexdigest = MD5_hexhash(e.target.result); output.innerHTML += "<li>" + hexdigest + " " + theFile.name + "</li>"; } })(f); reader.readAsBinaryString(f); } output.innerHTML += "</ul>" } document.addEventListener("DOMContentLoaded", () => { document.getElementById("files").addEventListener("change", handleFileSelect, false); }, false); </script> </head> <body> <h1>MD5 calculator</h1> <input type="file" id="files" name="files[]" multiple /><br /> <output id="list"></output> </body> </html>