我需要使用一种加密机制。我选择了mcrypt,因为它是可用的并且有示例。但是我发现生成时间太长了。当我像给定的示例中那样使用IV时,它花费了很多时间,而当我将其删除时,它立即生成了加密值。
// Code example using IV
$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($ivSize, MCRYPT_DEV_RANDOM);
$encryptedString = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $encryptionKey, utf8_encode($origString), MCRYPT_MODE_ECB, $iv);
return base64_encode($encryptedString);
// Code example without IV
$encryptedString = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $encryptionKey, utf8_encode($origString), MCRYPT_MODE_ECB);
return base64_encode($encryptedString);
所以,如果在不使用IV的情况下进行加密存在任何重大安全问题吗?
MCRYPT_DEV_RANDOM
?尝试使用MCRYPT_DEV_URANDOM
看看是否更加即时。除此之外,你应该等待一个密码学专家的建议,但就我有限的知识而言,你肯定需要一个 IV。 - decezeMCRYPT_DEV_URANDOM
的性能非常好。但我更倾向于查看描述性答案。 - kuldeep.kamboj