编码 UTF8加密方式 AES 运算模式 ECB 填充模式 零字节组成的字符串 块大小 128(位)密文传输编码 BASE64

使用java实现 如:123456加密后:0cfAwa9X9XRpr53SKjfiug==
2025-04-01 15:13:33
推荐回答(1个)
回答1:

我找到了解决我的问题。为了使加密工作,而填充我不得不补充,而不是kCCOptionPKCS7Padding或kCCOptionECBMode均会被视为为0x0000。此外,如果需要被编码的数据不具有kCCKeySizeAES128的长度数倍(16),然后保存该数据的矢量必须被调整到具有多个长度与kCCKeySizeAES128并充满我加空格的空值。-(NSData*)AES128EncryptWithKey:(NSString*)key{charkeyPtr[kCCKeySizeAES128+1];bzero(keyPtr,sizeof(keyPtr));[keygetCString:keyPtrmaxLength:sizeof(keyPtr)encoding:NSUTF8StringEncoding];intdataLength=[selflength];intdiff=kCCKeySizeAES128-(dataLength%kCCKeySizeAES128);intnewSize=0;if(diff>0){newSize=dataLength+diff;}chardataPtr[newSize];memcpy(dataPtr,[selfbytes],[selflength]);for(inti=0;i