1

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

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

1 回答 1

0

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

于 2013-08-07T04:13:36.637 回答