ハッシュ関数の比較ができる便利なコード


PHPでサポートしているハッシュ関数の一覧を比較できるコードがPHPマニュアルのnoteに掲載されていました.
あと,MD5 - Wikipediaとかにも書かれてますが,md5使っている人は,sha256以上にシフトした方がいいですよ!

<?php
// コード
// hash_algos()はPHP5.1.2以上が必要
$data = "hello";

foreach (hash_algos() as $v) {
    $r = hash($v, $data, false);
    printf("%-12s %3d %s\n", $v, strlen($r), $r);
}

// 出力
// アルゴリズム名 サイズ ハッシュ後文字列
// md2           32 a9046c73e00331af68917d3804f70655
// md4           32 866437cb7a794bce2b727acc0362ee27
// md5           32 5d41402abc4b2a76b9719d911017c592
// sha1          40 aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
// sha224        56 ea09ae9cc6768c50fcee903ed054556e5bfc8347907f12598aa24193
// sha256        64 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
// sha384        96 59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f
// sha512       128 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
// ripemd128     32 789d569f08ed7055e94b4289a4195012
// ripemd160     40 108f07b8382412612c048d07d13f814118445acd
// ripemd256     64 cc1d2594aece0a064b7aed75a57283d9490fd5705ed3d66bf9adfe3a58b25de5
// ripemd320     80 eb0cf45114c56a8421fbcb33430fa22e0cd607560a88bbe14ce70bdf59bf55b11a3906987c487992
// whirlpool    128 0a25f55d7308eca6b9567a7ed3bd1b46327f0f1ffdc804dd8bb5af40e88d78b88df0d002a89e2fdbd5876c523f1b67bc44e9f87047598e7548298ea1c81cfd73
// tiger128,3    32 a78862336f7ffd2c8a3874f89b1b74f2
// tiger160,3    40 a78862336f7ffd2c8a3874f89b1b74f2f27bdbca
// tiger192,3    48 a78862336f7ffd2c8a3874f89b1b74f2f27bdbca39660254
// tiger128,4    32 1c2a939f230ee5e828f5d0eae5947135
// tiger160,4    40 1c2a939f230ee5e828f5d0eae5947135741cd0ae
// tiger192,4    48 1c2a939f230ee5e828f5d0eae5947135741cd0aefeeb2adc
// snefru        64 7c5f22b1a92d9470efea37ec6ed00b2357a4ce3c41aa6e28e3b84057465dbb56
// snefru256     64 7c5f22b1a92d9470efea37ec6ed00b2357a4ce3c41aa6e28e3b84057465dbb56
// gost          64 a7eb5d08ddf2363f1ea0317a803fcef81d33863c8b2f9f6d7d14951d229f4567
// adler32        8 062c0215
// crc32          8 3d653119
// crc32b         8 3610a686
// salsa10      128 1d42409263cd0fa77196d0f658c374c45eae2ce2055bee8be0ee7a83a5dcf9068418464aec34e90ab3758ac626d811c6e5eeac4764f1e8b5d8fa3c4d9ce5973c
// salsa20      128 3521aedbf306f0e7a2f31fbc5ab44e8bcedd17287c0eaa04458578fb2d55e09a87f2051e910667b0acafe41d5492232662bf2a55c0c99882c0d341147eba2fef
// haval128,3    32 85c3e4fac0ba4d85519978fdc3d1d9be
// haval160,3    40 0e53b29ad41cea507a343cdd8b62106864f6b3fe
// haval192,3    48 bfaf81218bbb8ee51b600f5088c4b8601558ff56e2de1c4f
// haval224,3    56 92d0e3354be5d525616f217660e0f860b5d472a9cb99d6766be90b15
// haval256,3    64 26718e4fb05595cb8703a672a8ae91eea071cac5e7426173d4c25a611c4b8022
// haval128,4    32 fe10754e0b31d69d4ece9c7a46e044e5
// haval160,4    40 b9afd44b015f8afce44e4e02d8b908ed857afbd1
// haval192,4    48 ae73833a09e84691d0214f360ee5027396f12599e3618118
// haval224,4    56 e1ad67dc7a5901496b15dab92c2715de4b120af2baf661ecd9266317
// haval256,4    64 2d39577df3a6a63168826b2a10f07a65a676f5776a0772e0a877e27ec3c4c0ad
// haval128,5    32 d20e920d5be9d9d34855accb501d1987
// haval160,5    40 dac5e2024bfea142e53d1422b90c9ee2c8187cc6
// haval192,5    48 bbb99b1e989ec3174019b20792fd92dd67175c2ff6ce5965
// haval224,5    56 aa6551d75e33a9c5cd4141e9a068b1fc7b6d847f85c3ab1629578ed3
// haval256,5    64 348298791817d5088a6de6c1b6364756d404a50bd64e645035f8cd4291c482c7
?>

引用元:PHP: hash - Manual