gpt4 book ai didi

c - AES_cfb128_使用openssl命令加密和解密

转载 作者:行者123 更新时间:2023-11-30 14:56:17 25 4
gpt4 key购买 nike

我正在使用下面的 openssl 函数加密数据文件

KEY="123456KEY";
IVEC="123456IVEC"

AES_set_encrypt_key(KEY, 128, &key);
AES_cfb128_encrypt(indata, outdata, bytes_read, &key, IVEC, &num, AES_ENCRYPT);

因此,我加密了文件file.tgz.enc,我可以使用相同的AES_cfb128_encrypt(AES_DECRYPT)函数解密该文件,但我想解密该文件使用命令行 openssl 命令。我正在尝试像

======
COMMAND
======
/usr/bin/openssl enc -aes-128-cbc -d -in file.tgz.enc -out
new-file.tgz -K 123456KEY -iv 123456IVEC
======
OUTPUT
======
non-hex digit
invalid hex iv value

我在命令行上收到错误,例如非十六进制数字、无效的十六进制 iv 值,并且我无法解密该文件。任何想法 ?有人可以指导我吗?

最佳答案

-K 和 -iv 需要十六进制字符,而您指定的输入在 123456KEY 中包含非十六进制字符 KY 123456IVEC

中的 IV

您需要将正确的 16 字节 key 传递给 AES_cfb128_encrypt 并将初始化 vector 传递给 AES_cfb128_encrypt但 KEY 只有 9 个字节,如果 KEY(变量)的大小也为 9,则可能会导致未定义的行为,因为 AES_set_encrypt_key 将继续从 KEY 读取 128 位(16 字节)

无论您在代码中使用哪个 key 和 IV,您都需要获取其十六进制表示形式并在 openssl 命令工具中使用它

关于c - AES_cfb128_使用openssl命令加密和解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44822539/

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