我在iOs应用程序上使用CocoaSecurity和RNCryptor加密NSString,在服务器端(.NET)试图使用网络上找到的众多功能中的一个对其进行解密,但没有成功。也是AES解密在线工具,解密失败。
有人能提供一个NSString加密在iOS上的工作示例,并使用AES256在.NET (VB或C#)中解密它吗?
发布于 2015-06-18 11:46:44
如果您使用RNCryptor on iOS for .net,则使用RNCryptor-cs。RNCryptor不仅仅是加密/解密,它是一个完整的安全协议,有关RNCryptor协议的详细信息,请参阅RNCryptor-Spec。正在积极维护RNEncryptor。
CocoaSecurity它并不可怕,但我不会使用它,它使用SHA从密码中派生加密密钥,这并不好,目前的做法是使用密钥派生函数,例如PBKDF2,这要安全得多。您必须在.NET上匹配协议,这是不详细的,您必须阅读代码才能找到答案。已经一年或更长时间没有更新了。
发布于 2015-06-19 10:26:19
谢谢zaph。你的回答对我很有帮助。
正如建议的那样,使用RNCryptor on iOS和RNCryptor-cs in .Net,我可以加密来自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 ):
Dim decryptor As RNCryptor.Decryptor = New RNCryptor.Decryptor
MessageBox.Show(decryptor.Decrypt("AwFnpL/jHjAYNkNnfBRUwl0pMwyHnM8uo2dojFk+rC7x9LnaFz+T1KaTjxSXoxF6Q4mzT+yl5RLuKZZuaiDlY5dXBw6TEyEXNJ8CxG9ZDZB3nQ==", "mySecretPassword"))
//MessageBox output = mySecretMessagehttps://stackoverflow.com/questions/30911665
复制相似问题