【发布时间】:2016-06-16 07:54:56
【问题描述】:
我正在使用 AES 算法加密以下 XML 请求,但在解密某些值时,最后会被截断
This is my data : <Xml><req1><sub1>120739</sub1><sub2>11</sub2><sub3>111</sub3><sub4>100201</sub4><sub5>102001</sub5><sub6>513582</sub6><sub7>103140</sub7><sub8>ONE</sub8></req1><req2><sub9>11</sub9><sub10>11</sub10><sub11>13</sub11><sub12>4427808003414523777</sub12><sub13>�����&Ôy3ë ÷ ���\�6Cÿ�'�4� ���64701244 3àøÈ@5"BÀ���_*@A�����7awO ���</sub13><sub14>100.00</sub14></req2></Xml>
我正在使用以下方法来加密和解密:
+(NSData*)AESCrypto :(char *)key :(char*)dataIn :(CCOperation)CryptOperation :(int)inlength :(CCAlgorithm)type :(size_t)keysize :(CCOptions)mode
{
char dataOut[inlength + kCCKeySizeAES128];
bzero(dataOut, sizeof(dataOut));
size_t numBytesEncryptedorDecrypted=0;
char iv[16]={0};
CCCryptorStatus result =CCCrypt(CryptOperation,type,mode,key,keysize,iv,dataIn,inlength, dataOut, sizeof(dataOut), &numBytesEncryptedorDecrypted);
NSLog(@"CryptoStatus:%d",result);
NSData *data=[[NSData alloc]initWithBytes:dataOut length:numBytesEncryptedorDecrypted];
return data;
}
谁能告诉我为什么有些字符在解密后最后会被截断,有什么解决方案可以解决这个问题吗?
【问题讨论】:
-
您能告诉我们使用的选项,例如模式和填充吗?
-
看起来您的 XML 中有无效数据,只允许使用 unicode 字符,而不是原始数据。
sub13的内容似乎不是 unicode。
标签: ios objective-c ascii aes