使用 bin2hex(random_bytes($str)) 在密码学上安全吗?

Joh*_*son 2 php security encryption byte cryptography

我为这个问题找到了不同的答案,但没有一个人询问加密安全性。

bin2hex(random_bytes($str))在 PHP 中使用加密安全 吗?它会降低安全性或唯一性吗?

Chr*_*ris 5

的文档random_bytes说该功能

生成适合加密使用的任意长度的加密随机字节字符串,例如在生成盐、密钥或初始化向量时。

所以 PHP 开发人员相信它已经足够好了。输入应该是一些字节,而不是一个字符串:

string random_bytes ( int $length )
Run Code Online (Sandbox Code Playgroud)

bin2hex对生成数据的加密适用性没有影响。特别是,它不能将您的随机字节“拉伸”为大量随机字节。如果您需要$n随机数据字节,请使用random_bytes($n).