我正在构建一个与服务器(php)通信的应用程序,并且希望将这种通信(可能使用json)加密。在大量搜索和阅读后,我发现了AESCrypt-Objc项目。在测试加密时(我使用了一个网络工具AES Encryption test),我发现在加密结果中缺少16个字节的数据。
以下是我使用的示例:
在AES项目中:
结果为:要加密的字符串:“The quick brown fox jumped over the lazy dog”。 密码:“12345678901234561234567890123456”
我的代码:<7eda336b 82f3e279 ae7638fe cccfffc6 5fbef8da 6df76d97 67d8cfa8 5bce2ae9>
self.strnToBeEnc = @"The quick brown fox jumped over the lazy dog";
self.appKey = @"12345678901234561234567890123456";
NSData *data2 = [self.strnToBeEnc dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@", data2);
NSData *s2 = [data2 AES256EncryptedDataUsingKey:self.appKey error:nil];
NSLog(@"%@", s2);
WEB工具:
相同的字符串和密码
结果:
<7eda336b 82f3e279 ae7638fe cccfffc6 5fbef8da 6df76d97 67d8cfa8 5bce2ae9 ca2ed34a 48f85af2 909654d5 b0de0fb7>
正如您所看到的,我缺少一些字节... :) 我尝试在算法中添加缓冲区,但没有成功。
有什么建议吗? 谢谢
(如果问题不够详细,请告诉我)
NSUTF8StringEncoding
而不是NSASCIIStringEncoding
。那会给你什么? - trumpetlicks