Objective c IOS中带CBC的AES 128

Objective c IOS中带CBC的AES 128,objective-c,commoncrypto,Objective C,Commoncrypto,我将数据输入为154字节的数据,密钥和Iv具有16字节的数据,当我进行加密时,它给出了-4303错误。(IOS中带有CBC的AES128)错误代码-4303是kCCAlignmentError。从文件: 解密时,或使用带填充的分组密码加密时 已禁用,如果 提供给CCCryptUpdate()的字节不是 当前算法的块大小 您应该检查输入数据大小是否正确。错误代码-4303是kCCAlignmentError。从文件: 解密时,或使用带填充的分组密码加密时 已禁用,如果 提供给CCCryptUpda

我将数据输入为154字节的数据,密钥和Iv具有16字节的数据,当我进行加密时,它给出了-4303错误。(IOS中带有CBC的AES128)

错误代码-4303是kCCAlignmentError。从文件:

解密时,或使用带填充的分组密码加密时 已禁用,如果 提供给CCCryptUpdate()的字节不是 当前算法的块大小


您应该检查输入数据大小是否正确。

错误代码-4303是kCCAlignmentError。从文件:

解密时,或使用带填充的分组密码加密时 已禁用,如果 提供给CCCryptUpdate()的字节不是 当前算法的块大小


您应该检查输入数据的大小是否正确。

对齐错误表示大小有问题。请查看我的答案以了解更多详细信息:对齐错误意味着尺寸有问题。请查看我的答案以了解更多详细信息:
+ (NSData *)doCipher:(NSData *)dataIn
                  iv:(NSData *)iv
                 key:(NSData *)symmetricKey
             context:(CCOperation)encryptOrDecrypt // kCCEncrypt or kCCDecrypt
               error:(NSError **)error
{
    CCCryptorStatus ccStatus   = kCCSuccess;
    size_t          cryptBytes = 0;
    NSMutableData  *dataOut    = [NSMutableData dataWithLength:dataIn.length + kCCBlockSizeAES128];

    ccStatus = CCCrypt( encryptOrDecrypt,
                       kCCAlgorithmAES128,
                       0, //kCCOptionPKCS7Padding,
                       symmetricKey.bytes,
                       kCCKeySizeAES128,
                       iv.bytes,
                       dataIn.bytes,
                       dataIn.length,
                       dataOut.mutableBytes,
                       dataOut.length,
                       &cryptBytes);

    if (ccStatus == kCCSuccess) {
        dataOut.length = cryptBytes;
    }
    else {
        if (error) {
            *error = [NSError errorWithDomain:@"kEncryptionError"
                                         code:ccStatus
                                     userInfo:nil];
        }
        dataOut = nil;
    }

    return dataOut;
}