我正在尝试使用“带有 IV 的 AES-128 CBC”加密字符串。这是输入参数和预期输出:
密钥:000102030405060708090A0B0C0D0E0F
四:00102030405060708090A0B0C0D0E0F0
输入数据:EA010B23CDA9B16F0001020304050607
输出:B773C36749E87D3F8FED98FE52026A15
I have verified the output on this web site:
http://extranet.cryptomathic.com/aescalc/index?key=000102030405060708090A0B0C0D0E0F&iv=00102030405060708090A0B0C0D0E0F0&input=EA010B23CDA9B16F0001020304050607&mode=cbc&action=Encrypt&output=B773C36749E87D3F8FED98FE52026A15
如何在目标C中使用带有IV的AES-128 CBC加密字符串?(结果与http://extranet.cryptomathic.com/aescalc相同)我正在尝试获取加密字符串 - B773C36749E87D3F8FED98FE52026A15 ,但没有运气。
我曾尝试使用此库进行加密:https ://github.com/Pakhee/Cross-platform-AES-encryption/tree/master/iOS
这是我的目标c代码:
NSString* data = @"EA010B23CDA9B16F0001020304050607";
NSString* key = @"000102030405060708090A0B0C0D0E0F";
NSString* iv = @"00102030405060708090A0B0C0D0E0F0";
NSData *encryptedData = [[StringEncryption alloc] encrypt:[@"EA010B23CDA9B16F0001020304050607" dataUsingEncoding:NSUTF8StringEncoding] key:key iv:iv];
NSLog(@"encryptedData %@", encryptedData);
encryptedData 的输出为:<68f8ed75 e79f2ba2 c80e67a2 f0c84b7a c4b07fd1 59e937e5 14644cba c0ddb60c 40502375 7798e7a1 58bd05a5 b3d9e7bd>
我希望 *encryptedData 的值应该是<42373733 43333637 34394538 37443346 38464544 39384645 35323032 36413135>的值,这是B773C36749E87D3F8FED98FE52026A15
的十六进制数
我试过另一个库 - https: //githubdev/FBtec5/FBEncryptor
NSData* _data = [data dataUsingEncoding:NSUTF8StringEncoding];
NSData* _key = [key dataUsingEncoding:NSUTF8StringEncoding];
NSData* _iv = [iv dataUsingEncoding:NSUTF8StringEncoding];
NSData *encryptedData2 = [FBEncryptorAES encryptData:_data key:_key iv:_iv];
NSLog(@"encryptedData2 = %@", encryptedData2);
输出为 <2beea977 aef69eb1 ed9f6dd0 7bf5f1ce d1e5df46 2cbf8465 773f122d 03267abb 2e113d9b 07189268 4fd6babe 7b1c0056>
似乎我使用了错误的库或者我对加密函数的输入错误。对目标 c 的 AES 库有什么建议吗?