Java aes加密-内容大小不是16字节的倍数
我有一个接近735字节的数据,当我加密并发送到服务器时,服务器可以加密到720字节(16的倍数),但不能超过720字节,如何解决这个问题,我需要的是一种解决方案,可以解决这个问题Java aes加密-内容大小不是16字节的倍数,java,ios,iphone,aes,Java,Ios,Iphone,Aes,我有一个接近735字节的数据,当我加密并发送到服务器时,服务器可以加密到720字节(16的倍数),但不能超过720字节,如何解决这个问题,我需要的是一种解决方案,可以解决这个问题 NSMutableData *cipherData = [NSMutableData dataWithLength: content.length + kCCBlockSizeAES128]; CCCryptorStatus result = CCCrypt(((shouldEncrypt)?kCCEn
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
在选项中,(二进制)或将kCCOptionPKCS7Padding
标志添加到kCCOptionECBMode
标志
这将自动将最后一个块填充到块大小。请注意,如果存在整数个块(否则无法将数据与填充区区分开来),这也会添加一个完整的块。您不能在末尾添加一些填充区以转到下一个16的倍数吗?@FlorentBayle自行填充并不难,可能不会导致漏洞,但使用平台定义的填充可能更好。thndrkiss注意:ECB模式不安全。也没有发送没有附加HMAC身份验证标记的密文。尽可能使用TLS。仅仅使用AES并不能保证协议的安全。