使用 mcrypt_encrypt() 给我警告 "Size of key is too long"
Using mcrypt_encrypt() give me warning "Size of key is too long"
我正在尝试在 PHP 中使用 mcrypt_encrypt() 但我在使用函数加密时遇到问题:
我的代码是:
变量:
$key = "1e1r1r1t1y1y1g1g1g1g1g1345678910"; // That is a example, the real key have 32 long too.
$ref="12013515"; // example value
// Tamanio Encripyt ....
$iv_size = mcrypt_get_iv_size(MCRYPT_3DES,MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size,MCRYPT_RAND);
// Lunch
$stringEncrypted = mcrypt_encrypt(MCRYPT_3DES,$key,$ref,MCRYPT_MODE_CBC,$iv);
如果我这样做,PHP 显示错误:
Warning: mcrypt_encrypt(): Size of key is too large for this algorithm
我需要使用加密 3DES...可能是什么问题?
你的钥匙太长了。 CBC 模式下 3DES 的最大密钥长度为 24 个字符。
3DES 的密钥长度为 168 位。 168 位/24 个字符 = 每个字符 7 位。
要获得给定算法的最大密钥长度,请使用:
mcrypt_get_key_size(MCRYPT_3DES,MCRYPT_MODE_CBC)
此算法不支持大小为 32 的密钥。仅支持大小为 24 的键。
对于这种情况,我需要忽略此类加密的大小值(我无法更改加密的密钥和类型)。
我读了一些 post 有同样问题和解决方案的文章。
感谢大家的帮助。
我正在尝试在 PHP 中使用 mcrypt_encrypt() 但我在使用函数加密时遇到问题:
我的代码是:
变量:
$key = "1e1r1r1t1y1y1g1g1g1g1g1345678910"; // That is a example, the real key have 32 long too.
$ref="12013515"; // example value
// Tamanio Encripyt ....
$iv_size = mcrypt_get_iv_size(MCRYPT_3DES,MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size,MCRYPT_RAND);
// Lunch
$stringEncrypted = mcrypt_encrypt(MCRYPT_3DES,$key,$ref,MCRYPT_MODE_CBC,$iv);
如果我这样做,PHP 显示错误:
Warning: mcrypt_encrypt(): Size of key is too large for this algorithm
我需要使用加密 3DES...可能是什么问题?
你的钥匙太长了。 CBC 模式下 3DES 的最大密钥长度为 24 个字符。
3DES 的密钥长度为 168 位。 168 位/24 个字符 = 每个字符 7 位。
要获得给定算法的最大密钥长度,请使用:
mcrypt_get_key_size(MCRYPT_3DES,MCRYPT_MODE_CBC)
此算法不支持大小为 32 的密钥。仅支持大小为 24 的键。
对于这种情况,我需要忽略此类加密的大小值(我无法更改加密的密钥和类型)。
我读了一些 post 有同样问题和解决方案的文章。
感谢大家的帮助。