如何在PHP中使用sha512
函数?
我能用sha512
函数替换所有的md5
函数吗?
我需要下载什么东西吗?如果需要,是什么?
有人能提供一些例子吗?
hash()
函数可以生成sha512哈希值。你可以通过调用hash_algos()
函数来验证这一点,该函数列出了支持的哈希算法。$sha512 = hash('sha512', "Hello, World!");
var_dump($sha512);
您将获得:
string '374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387' (length=128)
$supported = hash_algos();
var_dump($supported);
表明支持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)
此外,如果您使用的是PHP版本大于等于5.3,您应该可以使用openssl_digest()
函数:
$sha512 = openssl_digest("Hello, World!", 'sha512');
var_dump($sha512);
(是的,参数顺序与hash()
不同 - 这就是PHP的魔力...)
而要获取支持的算法列表,则可以使用openssl_get_md_methods()
。
在我的系统上,此函数可给出22种支持的算法。
校验和用于生成校验和,HMAC 可能是生成需要安全哈希的字符串的加盐哈希的首选方式。
hash_hmac('sha512', 'important string', 'salt');
只是出于好奇,你为什么想要替换MD5函数?
它相对高效。如果你添加盐值,它就真的很麻烦去反向工程化。某人必须对所有密码进行暴力编码,寻找匹配项。没有盐值,通用的短字符串小写所有字母串已经被破解并存储在数据库中。
我只会添加一个盐值并称之为好的。
$ _SESSION
中设置某些内容以指示用户已登录。 - Pascal MARTIN