我在iPhone应用程序中使用3DES加密时遇到问题。我有9字节的消息要加密。当我使用kCCOptionECBMode
时,第一个8字节块被正确加密(我有一个由服务器生成的样本结果)。如何加密最后一个字节?当我使用kCCOptionPKCS7Padding
或kCCOptionECBMode| kCCOptionPKCS7Padding
时,它会以状态kCCBufferTooSmall
提供错误的结果。我在SO上经历了一些与3DES加密相关的帖子,但没有帮助我。
ccStatus = CCCrypt(kCCEncrypt,
kCCAlgorithm3DES,
kCCOptionECBMode,
vkey,
kCCKeySize3DES,
vinitVec,
vplainText,
plainTextBufferSize,
(void *)bufferPtr,
[data length],
&movedBytes);
答案 0 :(得分:0)
问题在于数据长度参数。我应该在填充后计算数据长度并将其传递给函数。