使用 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 上解密它?

你对我有什么建议?

使用 C# 加密字符串,并在 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 算法加密字符串(始终相同,这就是它工作的原因)并比较两个结果。