【发布时间】:2016-04-13 10:06:10
【问题描述】:
在openssl_random_pseudo_bytes() 和mcrypt_create_iv() 的输出上使用bin2hex() 以将它们作为十六进制而不是二进制原始数据用作IV 是否安全可靠,或者这是一个安全风险并且不推荐?
【问题讨论】:
-
如何构成安全风险?您所做的只是获取一些字节并将它们转换为其他一些字节。风险来自您如何使用这些字节。
-
如果将某些字节转换为其他字节与安全性无关,那么为什么那些 php 函数和
random_bytes()会存在呢?因为任何人都可以生成一些随机字节? -
因为 bin2hex 并没有从根本上改变字节,它只是将它们转换为不同的显示格式。价值观不会改变,只是人类如何看待它们。它们仍然是随机字节,它们只是可打印为十六进制值,而不是屏幕上的“垃圾”。
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Cryptography Stack Exchange 或Information Security Stack Exchange 会是一个更好的提问地点。
-
来自 Crypto.SE 的交叉发布:Is it secure to use hexadecimal data for IV instead of raw binary?
标签: php openssl cryptography mcrypt initialization-vector