AES encryption/decryption iOs 和 .Net

AES encryption/decryption iOs and .Net

我使用 CocoaSecurity 和 RNCryptor 在 iOs 应用程序上加密 NSString,并在服务器端 (.NET) 尝试使用网络上找到的众多函数之一对其进行解密,但没有成功。还有AES解密在线工具,解密失败

有人可以提供一个在 iOS 上使用 AES256 在 .NET(VB 或 C#)中进行 NSString 加密和解密的工作示例吗?

如果您正在使用 RNCryptor on iOS for .net use RNCryptor-cs. RNCryptor is more than just encrypt/decrypt, it is a complete secure protocol, see RNCryptor-Spec 了解有关 RNCryptor 协议的详细信息。 RNEncryptor 正在积极维护中。

CocoaSecurity 这并不可怕,但我不会使用它,它使用 SHA 从密码中导出加密密钥,这不好,目前的做法是使用这样的密钥导出函数作为 PBKDF2,它更安全。您将必须匹配 .NET 上的协议并且不详细,您必须阅读代码才能弄清楚。一年多没更新了

谢谢 zaph。你的回答对我帮助很大。

按照建议,在 .Net 中使用 RNCryptor on iOS and RNCryptor-cs 我能够加密来自 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