首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AES加密/解密iOs和.Net

AES加密/解密iOs和.Net
EN

Stack Overflow用户
提问于 2015-06-18 09:33:42
回答 2查看 1.1K关注 0票数 3

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

有人能提供一个NSString加密在iOS上的工作示例,并使用AES256在.NET (VB或C#)中解密它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-18 11:46:44

如果您使用RNCryptor on iOS for .net,则使用RNCryptor-cs。RNCryptor不仅仅是加密/解密,它是一个完整的安全协议,有关RNCryptor协议的详细信息,请参阅RNCryptor-Spec。正在积极维护RNEncryptor。

CocoaSecurity它并不可怕,但我不会使用它,它使用SHA从密码中派生加密密钥,这并不好,目前的做法是使用密钥派生函数,例如PBKDF2,这要安全得多。您必须在.NET上匹配协议,这是不详细的,您必须阅读代码才能找到答案。已经一年或更长时间没有更新了。

票数 1
EN

Stack Overflow用户

发布于 2015-06-19 10:26:19

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

正如建议的那样,使用RNCryptor on iOS和RNCryptor-cs in .Net,我可以加密来自iOS的数据,然后在.Net上解密它们。

举个小例子,我是如何做到这一点的:

在iOS方面:

代码语言:javascript
复制
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 ):

代码语言:javascript
复制
Dim decryptor As RNCryptor.Decryptor = New RNCryptor.Decryptor

MessageBox.Show(decryptor.Decrypt("AwFnpL/jHjAYNkNnfBRUwl0pMwyHnM8uo2dojFk+rC7x9LnaFz+T1KaTjxSXoxF6Q4mzT+yl5RLuKZZuaiDlY5dXBw6TEyEXNJ8CxG9ZDZB3nQ==", "mySecretPassword"))
//MessageBox output = mySecretMessage
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30911665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档