iPhone填充问题中的3des加密

时间:2013-08-07 03:20:31

标签: iphone ios encryption 3des

我在iPhone应用程序中使用3DES加密时遇到问题。我有9字节的消息要加密。当我使用kCCOptionECBMode时,第一个8字节块被正确加密(我有一个由服务器生成的样本结果)。如何加密最后一个字节?当我使用kCCOptionPKCS7PaddingkCCOptionECBMode| kCCOptionPKCS7Padding时,它会以状态kCCBufferTooSmall提供错误的结果。我在SO上经历了一些与3DES加密相关的帖子,但没有帮助我。

 ccStatus = CCCrypt(kCCEncrypt,
                       kCCAlgorithm3DES,
                       kCCOptionECBMode,
                       vkey, 
                       kCCKeySize3DES,
                       vinitVec,
                       vplainText,
                       plainTextBufferSize,
                       (void *)bufferPtr,
                       [data length],
                       &movedBytes);

1 个答案:

答案 0 :(得分:0)

问题在于数据长度参数。我应该在填充后计算数据长度并将其传递给函数。