gpt4 book ai didi

c - AES ECB 加密/解密只解密前 16 个字节

转载 作者:太空狗 更新时间:2023-10-29 14:56:27 33 4
gpt4 key购买 nike

我有解码 AES 256 字符串的函数,但它只返回 16 个字符

bool decrypt_block(unsigned char* cipherText, unsigned char* plainText, unsigned char* key)
{
AES_KEY decKey;
if (AES_set_decrypt_key(key, 256, &decKey) < 0)
return false;
AES_decrypt(cipherText, plainText, &decKey);
return true;
}

decrypt_block( encoded, resultText, ( unsigned char *) "57f4dad48e7a4f7cd171c654226feb5a");

任何想法

最佳答案

看来您混淆了 key 长度和 block 大小。

AES 可用于 3 种不同的 key 长度:128 位、192 位和 256 位。

AES 始终使用 128 位(16 字节)的 block 大小。对于长度超过 16 字节的消息,您需要一次解密(或加密)16 个字节,并期望每次得到 16 个字节的输出。 (您还需要决定使用哪种模式 - 例如 CBC、CTR、ECB 等。如果您正在解密其他人提供的文本,那么该决定已经为您做出。如果您自己做出决定,请承担请记住,ECB 几乎永远不是正确的选择。)如果消息的长度不是 16 字节的倍数,则需要 pad it所以它是。 PKCS #7 填充是最常见的。

参见 Wikipedia article on AES获取更多信息。

关于c - AES ECB 加密/解密只解密前 16 个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15375854/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com