簡體   English   中英

AES加密/解密iOs和.Net

[英]AES encryption/decryption iOs and .Net

我使用CocoaSecurity和RNCryptor來加密iOs應用程序上的NSString,並且在服務器端(.NET)嘗試使用Web上發現的許多功能之一來解密它,但沒有運氣。 AES解密在線工具也無法解密。

有人可以在iOS上提供NSString加密的工作示例,並使用AES256在.NET(VB或C#)中對其進行解密嗎?

謝謝zaph。 你的回答對我很有幫助。

如建議的那樣,在iOS上使用RNCryptor和在.Net中使用RNCryptor -c我能夠從iOS加密數據,然后在.Net上解密它們。

這是一個小例子,我是如何實現的:

在iOS方面:

NSData* data = [@"mySecretMessage" dataUsingEncoding:NSUTF8StringEncoding];
NSError* error;
NSData* encrypted = [RNEncryptor encryptData:data
                                withSettings:kRNCryptorAES256Settings
                                    password:@"mySecretPassword"
                                       error:&error];
NSString* encryptedDataAsString = [encrypted base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn];
//encryptedDataAsString = AwFnpL/jHjAYNkNnfBRUwl0pMwyHnM8uo2dojFk+rC7x9LnaFz+T1KaTjxSXoxF6Q4mzT+yl5RLuKZZuaiDlY5dXBw6TEyEXNJ8CxG9ZDZB3nQ==

在.Net端(使用Visual Basic):

Dim decryptor As RNCryptor.Decryptor = New RNCryptor.Decryptor

MessageBox.Show(decryptor.Decrypt("AwFnpL/jHjAYNkNnfBRUwl0pMwyHnM8uo2dojFk+rC7x9LnaFz+T1KaTjxSXoxF6Q4mzT+yl5RLuKZZuaiDlY5dXBw6TEyEXNJ8CxG9ZDZB3nQ==", "mySecretPassword"))
//MessageBox output = mySecretMessage

如果您在iOS上使用RNCryptor for .net請使用RNCryptor-cs RNCryptor不僅僅是加密/解密,它是一個完整的安全協議,有關RNCryptor協議的詳細信息,請參閱RNCryptor-Spec RNEncryptor正在積極維護。

CocoaSecurity並不可怕,但我不會使用它,它使用SHA從密碼中導出加密密鑰,這是不好的,目前的做法是使用密鑰派生函數,如PBKDF2,它更安全。 您必須匹配.NET上的協議,並且不詳細,您必須閱讀代碼才能弄明白。 它在一年或更長時間內沒有更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM