我有一个数据,他接近735字节,当我加密并发送到服务器服务器能够加密,直到说720(16的倍数),但没有超出那个,如何解决这个问题,所有我需要是一种能够解决这个问题的解决方案。
NSMutableData *cipherData = [NSMutableData dataWithLength: content.length + kCCBlockSizeAES128];
CCCryptorStatus
result = CCCrypt(((shouldEncrypt)?kCCEncrypt:kCCDecrypt), // operation
kCCAlgorithmAES128, // Algorithm - AES128 means the block size, not the keysize
kCCOptionECBMode, // options
key.bytes, // key
kCCKeySizeAES256, // keylength
NULL,// iv
content.bytes, // dataIn
content.length, // dataInLength,
cipherData.mutableBytes, // dataOut
cipherData.length, // dataOutAvailable
&outLength); // dataOutMoved
答案 0 :(得分:1)
在选项中,(二进制)或kCCOptionPKCS7Padding
标志到kCCOptionECBMode
标志。
这将自动将最后一个块填充到块大小。请注意,如果存在整数个块,这也会添加一个完整的块(否则无法将数据与填充区分开)。