ハッシュ化

パスワードを平文で保存しては危ないのでハッシュ化するのだけれど、少々調べてみた。
まずcrypt関数。マシン依存でDES暗号かMD5ハッシュになるのだそう。

print crypt("hoge", "1234567");

12.aCGsm0z7ngが戻ってきたので、使っているのはDESの模様。
そもそもマシン依存するのじゃNG。んじゃ、CPANだ。
Digest::MD5があった。こんな風に使うらしい。

use Digest::MD5 qw(md5 md5_hex md5_base64);
#文字列の場合
print md5_hex("hoge"), "\n";
print md5_base64("hoge"), "\n";

#ファイルの場合
open(my $fh, "<sub.pl");
my $md5 = Digest::MD5->new;
$md5->addfile($fh);
print $md5->hexdigest;
close($fh);


DESならCrypt::DESモジュールでよさげ。