PHP 使用 SHA256、SHA512 等 演算法的寫法

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() 使用範例

  1. <?php
  2. echo hash('sha256', 'abc');
  3. echo hash('sha512', 'abc');
  4. // md5, sha1.. 等等也都可以用此寫法
  5. echo hash('md5', 'abc');
  6. echo hash('sha1', 'abc');
  7. ?>

PHP hash() 有支援哪些雜湊演算法呢?

可以使用 hash_algos() 來查詢,範例如下:

  1. <?php
  2. // 列出 hash() 有哪些演算法可使用
  3. /*
  4. Array
  5. (
  6. [0] => md2
  7. [1] => md4
  8. [2] => md5
  9. [3] => sha1
  10. [4] => sha224
  11. [5] => sha256
  12. [6] => sha384
  13. [7] => sha512
  14. [8] => ripemd128
  15. [9] => ripemd160
  16. [10] => ripemd256
  17. [11] => ripemd320
  18. [12] => whirlpool
  19. [13] => tiger128,3
  20. [14] => tiger160,3
  21. [15] => tiger192,3
  22. [16] => tiger128,4
  23. [17] => tiger160,4
  24. [18] => tiger192,4
  25. [19] => snefru
  26. [20] => snefru256
  27. [21] => gost
  28. [22] => gost-crypto
  29. [23] => adler32
  30. [24] => crc32
  31. [25] => crc32b
  32. [26] => fnv132
  33. [27] => fnv1a32
  34. [28] => fnv164
  35. [29] => fnv1a64
  36. [30] => joaat
  37. [31] => haval128,3
  38. [32] => haval160,3
  39. [33] => haval192,3
  40. [34] => haval224,3
  41. [35] => haval256,3
  42. [36] => haval128,4
  43. [37] => haval160,4
  44. [38] => haval192,4
  45. [39] => haval224,4
  46. [40] => haval256,4
  47. [41] => haval128,5
  48. [42] => haval160,5
  49. [43] => haval192,5
  50. [44] => haval224,5
  51. [45] => haval256,5
  52. )
  53. */
  54. ?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈PHP 使用 SHA256、SHA512 等 演算法的寫法〉中有 3 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料