使用 C# 加密字符串,并在 iOS 和 Android 上解密
本文关键字:Android 解密 iOS 并在 加密 字符串 使用 | 更新日期: 2023-09-27 18:32:49
我正在开发一个带有C#和.NET Framework 4.0的WCF Web服务。我还在开发一个iOS和Android客户端来连接它。
在服务器端,我必须生成一个密码,对其进行加密,然后将其发送回iOS客户端或Android客户端。
我不知道如何使用.NET Framework加密字符串。在互联网上搜索,我看到有算法可以做到这一点:MD5,RSA等(我不确定我是否理解如何加密字符串,因为我还没有做字符串加密)。
如果我使用 MD5 加密密码,我需要怎么做才能在 iOS 和 Android 上解密它?
你对我有什么建议?
在 .Net 中加密字符串很容易。您可以使用内置的System.Security.Cryptography.MD5。
这是一个链接:http://msdn.microsoft.com/en-us/library/system.security.cryptography.md5.aspx
这是一个与您非常相似的关于语言之间加密/解密的问题.. mfanto有一个很好的答案。
在不同编程语言之间传递加密数据的最佳实践
问题是你的加密必须有多严重?MD5不是一件严肃的事情。至于RSA,您应该考虑到这是一种异步加密方法,它消耗一对公钥和私钥。根据您的目标,可以说RSA是否适合您。当然,如果您开发了一些严肃的东西,切勿使用公共库进行加密(包括 MS)。
我使用CommonCrypto编写了RSA和AES实现,实现是为了与.NET互操作
看看吧
https://github.com/ozgurshn/EncryptionForiOS
在 .net 中创建关键字的 md5 哈希很容易:
MD5 hashKey = new MD5CryptoServiceProvider();
var hashedKey = hashKey.ComputeHash(ASCIIEncoding.ASCII.GetBytes("password"));
注意:散列键是字节数组,您可以从中构建一个字符串或进行进一步的加密(例如更改为数字,将其转换为十六进制......你需要using System.Security.Cryptography;
在 Ios/Android 上,您必须执行相同的操作,使用 MD5 算法加密字符串(始终相同,这就是它工作的原因)并比较两个结果。