我正在编写适用于“流”的 XXTEA 加密算法的实现,即可以像这样使用:crypt mykey < myfile > 输出。
必要条件之一是它根本无法访问文件(它只读取固定大小的块,直到找到 EOF)。该算法需要数据字节是 4 的倍数,因此需要添加一个填充。
对于纯文本,一个好的解决方案是填充 NULL,在解密时忽略 NULL,但相同的策略不能用于二进制流(可以包含嵌入的 NULL)。
我已经阅读了常见的解决方案,比如用丢失的字符数填充(如果它错过了 3 个字符,然后在末尾附加一个 3、3、3)等等,但我想知道:有更优雅的解决方案吗?