我找到了这个问题的不同答案,但没有人询问加密安全性。
在PHP中使用bin2hex(random_bytes($str))
是否具有加密安全性?它会降低安全性还是唯一性?
答案 0 :(得分:4)
The documentation for random_bytes
说功能
生成适用于加密用途的任意长度的加密随机字节字符串,例如生成salt,keys或初始化向量时。
所以PHP开发人员认为它已经足够好了。输入应该是多个字节,而不是字符串:
string random_bytes ( int $length )
bin2hex
对生成的数据的加密适用性没有影响。特别是,它不能"伸展"你的随机字节变成了更大量的随机字节。如果您需要$n
字节的随机数据,请使用random_bytes($n)
。