2009-12-27 23 views
19

我正在搜索提供SHA-512哈希的任何加密庫。谷歌搜索我發現一些,但SHA-512缺席。用於PHP的SHA-512庫

請建議。

回答

33

如果你正在使用PHP> = 5.3,功能openssl_digest應該做的伎倆:

echo openssl_digest('glop', 'sha512'); 

給我這個輸出(在兩行分裂,以獲得更好的可讀性)

416b1861951170e1f6eb6543b0dd3d4f1994ce8da7cd82061513d3ddd1dd81111 
f4ada5caf6421f1d17425c6f29bdb4a95cf84df9eda4164f5a762acbb490a68 

(您可以使用openssl_get_md_methods獲取可用摘要方法的列表)


並與PHP 5.1或5.2,你有hash功能:

echo hash('sha512', 'glop'); 

給我相同的輸出(分裂,太)

416b1861951170e1f6eb6543b0dd3d4f1994ce8da7cd82061513d3ddd1dd81111 
f4ada5caf6421f1d17425c6f29bdb4a95cf84df9eda4164f5a762acbb490a68 

而且,在這裏,要知道可用摘要方法的列表,你可以使用hash_algos

+5

是什麼openssl_digest'和PHP> = 5.3'hash''之間的區別? – Markus 2011-02-07 20:24:45

+2

-1沒有解釋爲什麼'openssl_digest'應該比'hash'更受歡迎。 – 2011-10-25 10:18:22

+2

任何人都可以解釋是否和爲什麼要使用openssl_digest而不是散列? – Rob 2012-06-16 14:59:11

15

在PHP 5> = 5.1.2,PECL散列> = 1.1:

hash('sha512', someStr); 

查看hash()瞭解更多信息。
要查看提供給你所有的哈希算法,嘗試:

print_r(hash_algos());