2013-08-07 71 views
1

我在我的iPhone应用程序中使用3DES加密时遇到问题。我有9个字节的消息要加密。当我使用kCCOptionECBMode时,第一个8字节块被正确加密(我有服务器产生的样本结果)。我怎样才能加密最后一个字节?当我使用kCCOptionPKCS7PaddingkCCOptionECBMode| kCCOptionPKCS7Padding时,它给出了错误的结果,状态为kCCBufferTooSmall。我已经在SO上看过一些与3DES加密有关的帖子,但没有帮助我。3des加密iPhone填充问题

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

回答

0

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