我正在嘗試使用'AES-128 CBC with IV'加密字符串。下面是輸入參數和預期的輸出:
在IV中,AES-128 CBC加密如何在Objective-C中工作?
鍵: 000102030405060708090A0B0C0D0E0F
IV: 00102030405060708090A0B0C0D0E0F0
輸入數據: EA010B23CDA9B16F0001020304050607
輸出: 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://github.com/dev5tec/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庫的任何建議?
你的意思是:http://stackoverflow.com/questions/7520615/how-to-convert-an-nsdata-into-an-nsstring-hex-string? – Larme
感謝Larme,我試過將NSData轉換爲NSString的例子。但它會返回怪獸角色,例如>èaμ[ü#Õ-ÅÄ ,o v®ÊØqÈÈËl〜〜。我不確定我的問題是NSData轉換還是我以錯誤的方式使用了庫 –
你是怎麼做到的?你有沒有試過:'NSUInteger容量= encryptedData.length * 2; NSMutableString * sbuf = [NSMutableString stringWithCapacity:capacity]; const unsigned char * buf = encryptedData.bytes; NSInteger i; for(i = 0; i
Larme