我是 AES 新手,但我发现有几种模式(ECB、CBC 等),不同的模式需要不同的初始化向量要求、块和编码。我正在尝试解码以下内容
Xrb9YtT7cHUdpHYIvEWeJIAbkxWUtCNcjdzOMgyxJzU/vW9xHivdEDFKeszC93B6MMkhctR35e+YkmYI5ejMf5ofNxaiQcZbf3OBBsngfWUZxfvnrE2u1lD5+R6cn88vk4+mwEs3WoAht1CAkjr7P+fRIaCTckWLaF9ZAgo1/rvYA8EGDc+uXgWv9KvYpDDsCd1JStrD96IACN3DNuO28lVOsKrhcEWhDjAx+yh72wM=
使用 php 和(文本)键“043j9fmd38jrr4dnej3FD11111111111”,模式为 CBC,IV 为全零。我可以让它与这个工具一起工作,但不能在 php 中得到它。这是我正在使用的代码:
function decrypt_data($data, $iv, $key) {
$data = base64_decode($data);
$cypher = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, '');
// initialize encryption handle
if (mcrypt_generic_init($cypher, $key, $iv) != -1) {
// decrypt
$decrypted = mdecrypt_generic($cypher, $data);
// clean up
mcrypt_generic_deinit($cypher);
mcrypt_module_close($cypher);
return $decrypted;
}
return false;
}
我想我可能会遗漏与 base 64 编码或首先将密钥转换为二进制相关的内容。我试过解码很多东西,但我能产生的只是胡言乱语。任何帮助将不胜感激。