我接收服務器的加密數據(BLOWFISH ALGORITHM),我必須在IOS中使用blowfish算法來解密它。解密來自目標C代碼中的河豚的值
你可以從這裏donwload我的代碼:https://www.dropbox.com/s/nswsm7des7isgd5/BlowfishTest-4.zip
我2天努力完成這個任務,我嘗試很多的鏈接,找到一些有用的:
- Blowfish Source code
- How to implement Blowfish algorithm in iOS
- http://www.codeding.com/articles/blowfish-encryption-algorithm-for-iphone
在第三個鏈接中,我得到了ECB(我必須使用ECB進行解密)。但是這個代碼在解密之後也沒有給出正確的輸出。
我使用測試一個在線工具,這表明正確的輸出:http://www.tools4noobs.com/online_tools/decrypt/
Key = 20zE1E47BE57$51
Input value is = aed5c110d793f850521a4dd3a56a70d9
Algorithm = BLOWFISH
Mode = ECB
Decode the input using= Hexa
output = aYzY1380188405 (this is correct output which i want)
和我得到:¹àÀhÒ¢º¹iÂF
這裏是我的代碼:
//Mode selected by default in nib: 「ECB」
NSString *modeString = [encryptionModeControl titleForSegmentAtIndex:encryptionModeControl.selectedSegmentIndex];
BlowfishAlgorithm *blowFish = [BlowfishAlgorithm new];
[blowFish setMode:[BlowfishAlgorithm buildModeEnum:modeString]];
[blowFish setKey:key];
[blowFish setInitVector:initVector];
[blowFish setupKey];
NSString *cipherText = cipherTextView.text;
NSString *plainText = [blowFish decrypt:cipherText];
NSLog(@"cipher-text: %@", cipherText);
NSLog(@"plain-text: %@", plainText);
注意:服務器端數據在ECB模式下使用BLOWFISH進行加密,並轉換爲十六進制符號。
請顯示一些代碼。不正確地處理編碼和填充是最常見的錯誤。 –
@MarcusAdams你可以從這裏下載我的代碼:https://www.dropbox.com/s/nswsm7des7isgd5/BlowfishTest-4。zip – QueueOverFlow
您有使用第三方的Blowfish實現而不是Apple的CommonCrypto API的原因嗎? –