Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » OpenSSLでMD5のハッシュ値を求める、という時に間違えないように

OpenSSLでMD5のハッシュ値を求める、という時に間違えないように

たまたま、久しぶりに最新のOpenSSLを触っていて、モヤモヤすることがあって気が付いた。

タイトルの通りで、OpenSSLでMD5のハッシュ値を求めたかったのだけど、ググって出てくるページの通りにやっていたら「あれ?」となることがあった。

久しぶりなので最初はコマンドを知りたかったので気が付かなかったけど、求めたハッシュ値でエラーになるので気が付いたというわけ。

注意しないといけないのは、OpenSSLで「hogehogeareare」のMD5のハッシュ値を求めるときは…とかいうページで

echo "hogehogeareare" | openssl md5

と書いてあることが多いが、これで求められるハッシュ値は「改行が含まれたハッシュ値」であるということ。

これは正確にいうとウソである。

OpenSSLのページに書いてある参考ソースもわざわざ最後に「\n」があるのは、間違える輩が多いからだろう。

https://www.openssl.org/docs/manmaster/man3/EVP_get_digestbyname.html

OpenSSLで「hogehogeareare」のMD5のハッシュ値を求めるなら、

echo -n "hogehogeareare" | openssl md5

と、改行コードをつけないで求めるのが正解。

こうしないと、OpenSSLの参考ソースで実際に求めるハッシュ値と異なるものが出てくる。

上記のようにechoを使っているにもかかわらず「-n」(改行無し)を付けていない解説ページが山ほど出てくるが…他人事だけど、大丈夫だったんだろうか?

Name of author

Name: admin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です