Vol*_*erK 60
编辑:已弃用mcrypt扩展名.对于新项目,请查看
random_bytes(int $ length)
和sodium(截至php 7.2 core-)扩展.
如果mcrypt扩展可用,您只需使用mcrypt_create_iv(size,source)来创建salt.
$iv = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
var_dump($iv);
Run Code Online (Sandbox Code Playgroud)
由于"字符串"的每个字节可以在0-255之间的范围内,因此需要二进制安全函数来保存/检索它.
好的盐有两个先决条件:一定要长,而且一定要随机。有很多方法可以实现这一点。microtime例如,您可以使用和的组合rand,但您可能会更加努力以确保您的盐是唯一的。
虽然冲突的可能性可以忽略不计,但请记住,使用 MD5 或其他容易发生冲突的算法对盐进行哈希处理将减少盐无缘无故唯一的可能性。
编辑:rand()替换mt_rand(). 正如迈克尔指出的,它比rand.