gpt4 book ai didi

c - Padding - 加密算法

转载 作者:太空狗 更新时间:2023-10-29 16:00:09 27 4
gpt4 key购买 nike

我正在编写适用于“流”的 XXTEA 加密算法的实现,即可以像这样使用:crypt mykey < myfile > 输出。

其中一个先决条件是它根本无法访问文件(它只读取固定大小的 block ,直到找到 EOF)。该算法需要数据字节是4的倍数,所以需要加一个padding。

对于纯文本,一个好的解决方案是用 NULL 填充,并且在解密时忽略 NULL,但同样的策略不能用于二进制流(可以包含嵌入的 NULL)。

我已经阅读了常见的解决方案,比如用缺失字符数填充(如果缺失 3 个字符,则在末尾附加 3、3、3)等等,但我想知道:有一个更优雅的解决方案?

最佳答案

阅读:http://msdn.microsoft.com/en-us/library/system.security.cryptography.paddingmode.aspx

它有一个常用填充方法的列表,例如:

PKCS7 - PKCS #7 填充字符串由一个字节序列组成,每个字节等于添加的填充字节总数。

ANSIX923 填充字符串由长度前用零填充的字节序列组成。

ISO10126 填充字符串由长度前的随机数据组成。

例子:

原始数据:01 01 01 01 01

PKCS #7:01 01 01 01 01 03 03 03

ANSIX923 01 01 01 01 01 00 00 03

ISO10126: 01 01 01 01 01 CD A9 03

关于c - Padding - 加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/169334/

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