SHAの計算色々

ハッシュ値計算の関数のことです。
PHPでは色々な利用方法があります。

代表的なのがSHA-1に対応した sha1() です。

しかし MD5 - Wikipediaにあるように、SHA-256以上が推奨されていますが、sha256()なんてものはないので、独自で計算します。
PHP4では確かに計算式を利用しないといけないのですが、PHP5では標準で利用できるようになっています。

PHP5の場合

<?php
hash('sha256', $string);

PHP4の場合

<?php
<code><pre>bin2hex(mhash(MHASH_SHA256, $string));

PHP5の方がすっきりしていますし、計算の回数が少ないので、パフォーマンスもいいのかも。
hash()は第1引数でアルゴリズムの指定します。
何が指定できるかはPHP: hash_algos - Manualを参照していただければいいのですが、少し古いようでしたので、PHP5.2.6での一覧を記載しておきます。

php -r "print_r(hash_algos());"
Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha256
    [5] => sha384
    [6] => sha512
    [7] => ripemd128
    [8] => ripemd160
    [9] => ripemd256
    [10] => ripemd320
    [11] => whirlpool
    [12] => tiger128,3
    [13] => tiger160,3
    [14] => tiger192,3
    [15] => tiger128,4
    [16] => tiger160,4
    [17] => tiger192,4
    [18] => snefru
    [19] => gost
    [20] => adler32
    [21] => crc32
    [22] => crc32b
    [23] => haval128,3
    [24] => haval160,3
    [25] => haval192,3
    [26] => haval224,3
    [27] => haval256,3
    [28] => haval128,4
    [29] => haval160,4
    [30] => haval192,4
    [31] => haval224,4
    [32] => haval256,4
    [33] => haval128,5
    [34] => haval160,5
    [35] => haval192,5
    [36] => haval224,5
    [37] => haval256,5
)