加密库和 block 大小

标签 c encryption encryption-symmetric

我正在使用提供给我的128位AES对称 key 加密函数。我在解密时不断遇到此段错误:

:error:0606506D:lib(6):func(101):reason(109):evp_enc.c:518:

起初,当一起测试加密/解密时,我会收到此错误,因为我用于存储加密和解密的缓冲区不够大。请帮我解决问题:

  1. 存储 key 时(使用 fgets),由于某种原因,存储它的 char 数组需要大小 34 而不是 33(我不认为这是问题所在,但谁知道呢)

  2. 我用来解密的格式是错误的(我很确定它需要原始二进制文件,我也尝试过十六进制)

  3. 还有其他因素扰乱了 block 大小。

这还能来自什么?

最佳答案

128 位 aes 对称 key 长度必须为 16 字节。

256 位 aes 对称 key 长度也必须为 32 字节。

关于加密库和 block 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49166667/

相关文章:

c - 评估和打印阶乘

c - 带有 %g 的 sprintf 的最小缓冲区大小是多少?

c - 如何从单链表中取消链接节点并存储取消链接的节点指针?

android - 是否可以远程托管 Android 应用程序中使用的资源,使其只能由我的应用程序使用?

c# - SQL类型和加密大小

encryption - 将初始化向量和盐与密文一起传递是否不安全?

c - AMD64——nopw 汇编指令?

java - Android:我的加密/解密不起作用,我得到奇怪的输出

android - 无效 key 异常 : Keystore operation failed on RSA decrypt on Android device

performance - 如何计算算法的加密和解密时间复杂度?