我正在尝试在两个不同的组件中执行加密和解密(Rijndael 256,ecb 模式):
1. PHP - 服务器端(使用 mcrypt)
2. C++ - 客户端(使用 gcrypt)
当客户端无法正确解密加密数据(由服务器端制作)时,我遇到了问题,
所以...我检查了:
1.初始向量 - 相同(32长度)
2.密钥 - 再次相同两边的钥匙。。
所以我用 C++ 编写了一些代码来加密数据(使用与 php 中相同的参数)
,我发现加密的数据包含不同的字节(可能是编码问题??)
我会很高兴得到一些帮助
PHP - MCrypt
// Encrypt Function
function mc_encrypt($encrypt, $mc_key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$iv = "static_init_vector_static_init_v";
echo "IV-Size: " . $iv_size . "\n";
echo "IV: " . $iv . "\n";
$passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $mc_key, $encrypt, MCRYPT_MODE_ECB, $iv);
print_hex($passcrypt);
return $encode;
}
mc_encrypt("Some text which should be encrypted...","keykeykeykeykeykeykeykeykeykeyke");
我将在评论中发布 C++ 代码
谢谢,约翰尼德普