PHP 有 md5()、sha1() ... 等等 function,不過現在建議使用 SHA224 以上(註),在 PHP 要怎麼寫呢?
註:下述摘錄自此篇:Mobilefish.com - MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and RIPEMD160 hash generator
- MD5 is considered cryptographically broken and is unsuitable for further use.
- The SHA1 algorithm might not be secure enough for ongoing use. It is recommended not to use SHA1.
- SHA224: SHA224 produces a 224-bit (28-byte) hash value, typically rendered as a hexadecimal number, 56 digits long.
- SHA256: SHA256 produces a 256-bit (32-byte) hash value, typically rendered as a hexadecimal number, 64 digits long.
- SHA384: SHA384 produces a 384-bit (48-byte) hash value, typically rendered as a hexadecimal number, 96 digits long.
- SHA512: SHA512 produces a 512-bit (64-byte) hash value, typically rendered as a hexadecimal number, 128 digits long.
- RIPEMD160: RIPEMD160 produces a 160-bit (20-byte) hash value, typically rendered as a hexadecimal number, 40 digits long.
PHP 使用 SHA256、SHA512 等 雜湊演算法的寫法
雜湊(Hash)演算法越來越多,PHP 直接做了 hash() 來用,直接指定要用哪個雜湊演算法即可。
PHP hash() 使用範例
<?php echo hash('sha256', 'abc'); echo hash('sha512', 'abc'); // md5, sha1.. 等等也都可以用此寫法 echo hash('md5', 'abc'); echo hash('sha1', 'abc'); ?>
PHP hash() 有支援哪些雜湊演算法呢?
可以使用 hash_algos() 來查詢,範例如下:
<?php // 列出 hash() 有哪些演算法可使用 print_r(hash_algos()); /* Array ( [0] => md2 [1] => md4 [2] => md5 [3] => sha1 [4] => sha224 [5] => sha256 [6] => sha384 [7] => sha512 [8] => ripemd128 [9] => ripemd160 [10] => ripemd256 [11] => ripemd320 [12] => whirlpool [13] => tiger128,3 [14] => tiger160,3 [15] => tiger192,3 [16] => tiger128,4 [17] => tiger160,4 [18] => tiger192,4 [19] => snefru [20] => snefru256 [21] => gost [22] => gost-crypto [23] => adler32 [24] => crc32 [25] => crc32b [26] => fnv132 [27] => fnv1a32 [28] => fnv164 [29] => fnv1a64 [30] => joaat [31] => haval128,3 [32] => haval160,3 [33] => haval192,3 [34] => haval224,3 [35] => haval256,3 [36] => haval128,4 [37] => haval160,4 [38] => haval192,4 [39] => haval224,4 [40] => haval256,4 [41] => haval128,5 [42] => haval160,5 [43] => haval192,5 [44] => haval224,5 [45] => haval256,5 ) */ ?>