PHP密码保护:md5到sha512

PeA*_*eAk 7 php mysql security

我如何使用sha512PHP 的功能?

md5可以用sha512功能替换所有功能吗?

如果是这样的话,我是否必须下载什么?

任何人都可以举例吗?

Pas*_*TIN 6

hash()PHP> = 5.1提供的函数应该能够生成sha512哈希 - 你可以验证这个调用hash_algos()函数,它列出了支持的哈希算法.


例如,您可以使用:

$sha512 = hash('sha512', "Hello, World!");
var_dump($sha512);
Run Code Online (Sandbox Code Playgroud)

你会得到:

string '374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387' (length=128)
Run Code Online (Sandbox Code Playgroud)


而且,在我的系统上,代码的以下部分:

$supported = hash_algos();
var_dump($supported);
Run Code Online (Sandbox Code Playgroud)

表示支持42种哈希算法:

array
  0 => string 'md2' (length=3)
  ...
  6 => string 'sha384' (length=6)
  7 => string 'sha512' (length=6)
  8 => string 'ripemd128' (length=9)
  9 => string 'ripemd160' (length=9)
  ...
  40 => string 'haval224,5' (length=10)
  41 => string 'haval256,5' (length=10)
Run Code Online (Sandbox Code Playgroud)



此外,使用PHP> = 5.3,您应该能够使用该openssl_digest()函数:

$sha512 = openssl_digest("Hello, World!", 'sha512');
var_dump($sha512);
Run Code Online (Sandbox Code Playgroud)

(是的,参数的顺序与hash()PHP的魔法不同,这里......)

并且,要获得支持的算法列表,您可以使用openssl_get_md_methods().

在我的系统上,这个给了我22个支持的算法.