AES-128加密/解密

时间:2016-05-27 22:34:29

标签: c++ encryption cryptography aes

我正在尝试通过实施此链接http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf中描述的算法来详细了解AES的工作原理。我同时加密和解密,我确信我的加密是正确的,因为我用来测试代码的链接中提供了示例。但是,我不确定如何测试我的解密算法是否正常工作。 我遇到的问题是我的AES实现不适用于16B输入(它返回垃圾)。然而,它正在为25KB输入工作。此外,它正在工作,它准确地加密和解密大部分文件,除了文件开头的字节和文件末尾的字节。不幸的是,我目前无法访问在这里发布的整个代码(如果需要的话,我会记得很多东西)。我希望看看是否有人会根据我的描述了解可能出现的问题。我不太了解除了开始和结束字节之外文件如何被解密,因为这应该是在ECB模式下,因此不应该整个文件是垃圾而不仅仅是开始和结束(因为ECB接收一块输入和输出相同大小的输出块。)

1 个答案:

答案 0 :(得分:0)

听起来你真的在使用CBC模式而且静脉注射不一样,可能只是为静脉注射垃圾。请参阅CBC mode

最后的错误字节可能是填充问题。你如何处理加密的输入长度不是块大小的倍数?