DES加密小于64字节的文件

DES encrypt file less than 64 bytes

我想为使用 DES 算法的研究创建一个加密程序。如果我的数据超过 64 字节,我可以使用 CBC 或 EBC 模式对其进行加密。但是,如果我的数据文件小于 64 字节怎么办?我应该在文件末尾添加空格来填充它并获得 64 字节吗?什么是好的方法?

DES 块大小为 64 位, 或 8 个字节。如果您的消息少于 8 个字节,则需要对其进行填充。一个common scheme就是通过重复追加padding的长度来填充block。例如,如果您的消息是 3 个字节,而您需要填充一个 8 字节的块,则需要 5 个字节的填充。将值 5、5 次附加到消息中:

// Message ABC + 5 bytes of padding
0x41 0x42 0x43 + 0x05 0x05 0x05 0x05 0x05

这意味着您至少需要一个字节的填充,因此如果您的消息是一个完整的块,您需要添加一整块额外的块来填充。要删除填充,请查看最后一个字节的值 N,并验证纯文本的最后 N 个字节是否具有相同的值值。