【发布时间】:2014-05-22 17:41:52
【问题描述】:
我正在编写一些加密(已知算法 - 不是我自己的),但我找不到任何关于此案例的具体文档。
一种填充方法(尽管问题存在,因为它们中的任何一个都可能有相同的问题)的工作原理如下:
如果你的块
所以 FF E2 B8 AA 变成 FF E2 B8 AA 04 04 04 04
这很棒,可以让你有一个非常明显的窗口,你可以在解密期间删除填充,但我的问题是,我有这个而不是上面的例子 -
10 39 ff ef 09 64 aa(长度为 7 个字节)。现在在这种情况下,上面的算法会说将其转换为 10 39 ff ef 09 64 aa 01,但我的问题是,当解密时,你如何决定何时在解密消息末尾获得 01 字节你如何知道它是用于填充(并且应该被剥离)还是实际消息的一部分并且您应该保留它?
我能想到的最合理的解决方案是在加密中附加/预先添加实际消息的大小,或者添加一个奇偶校验块来说明是否有填充,这两个都有自己的问题。
我假设以前遇到过这个问题,但我想知道解决方案是什么。
【问题讨论】:
标签: encryption cryptography aes pkcs#7