我正在使用C#和.NET Framework 4.0开发WCF Web服务。我也正在开发一个iOS和Android客户端来连接它。
在服务器端,我必须生成一个随机密码,对其进行加密,然后将其发送回iOS客户端或Android客户端。
我不知道如何使用.NET Framework加密字符串。在Internet上搜索,我看到有算法可以做到:MD5,RSA等(我不知道我是否已经理解了如何加密字符串,因为我还没有进行字符串加密)。
如果我使用MD5加密密码,我需要做些什么才能在iOS和Android上解密?
你推荐我什么?
答案 0 :(得分:0)
在.Net中加密字符串很容易。您可以使用内置的System.Security.Cryptography.MD5。
以下是一个链接:http://msdn.microsoft.com/en-us/library/system.security.cryptography.md5.aspx
这是一个与你的非常相似的问题,关于语言之间的加密/解密.mfanto有一个很好的答案。
Best practices for passing encrypted data between different programming languages
答案 1 :(得分:0)
问题是加密必须有多严重? MD5并不是一件严肃的事情。对于RSA,您应该考虑这是一种使用一对公钥和私钥的asyn加密方法。根据您的目标,可以说RSA是否适合您。当然,如果你开发出严肃的东西,千万不要使用公共库进行加密(包括MS)。
答案 2 :(得分:0)
答案 3 :(得分:-1)
在.net:
中创建关键字的md5哈希很容易MD5 hashKey = new MD5CryptoServiceProvider();
var hashedKey = hashKey.ComputeHash(ASCIIEncoding.ASCII.GetBytes("password"));
注意:散列键是字节数组,您可以从中构建字符串或进一步加密(f.e。更改为数字,将其转换为十六进制......)。您需要using System.Security.Cryptography;
在Ios / Android上你必须做同样的事情,用MD5算法加密字符串(它总是一样的,这就是它的工作原理)并比较两个结果。