c - 当使用 AES 128 CBC 加密时,是否有可能在加密消息中间得到 NULL 字节?

标签 c aes

如主题所示。我想知道使用 AES128 CBC 时是否可以获得如下所示的加密字节:

7b 22 63 6d 64 22 3a 22  73 65 74 41 70 22 2c 22    
73 63 6f 22 2c 22 70 61  00 73 22 3a 22 70 61 73  
73 77 6f 72 64 22 7d 00  00 00 00 00 00 00 00 00

注意第二行中的 NULL 字节。

编辑:这个问题背后的一些背景。

我有一个 C 函数,在调用它后获取缓冲区和纯文本 (utf8),我需要知道谁填充了缓冲区的大部分。

最佳答案

是的,任何字节值都可以,包括 0。

这里隐含的问题是“我可以对加密数据使用字符串处理函数吗”。不能,因为 0 是有效值。您需要跟踪加密数据中的字节数。

关于c - 当使用 AES 128 CBC 加密时,是否有可能在加密消息中间得到 NULL 字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592846/

相关文章:

c - TCP 客户端不处理损坏的服务器在 C 中正确连接

使用 bison 生成的文件进行循环依赖解析

c - 我是否在 c 中的堆实现的 add 函数中正确实例化了指针

c - 通过引用传递给函数时分配结构和填充字段

javascript - Node.js 加密输入/输出类型

mysql - CF10 AES 加密 java.lang.String 存储数据时无法转换为 [B 错误

c# - 使用 BouncyCaSTLe 解密 AES-CBC-PKCS7 时出现额外的空字符

c - 如何从文件创建一个字符数组?

使用 OpenSSL key 的 Java 加密

ios - 什么时候检查 "This Application Uses Encryption"框?