MD5加密算法简单示例
现在网络上一般的网站,只要功能稍微完善一点的,都需要用户进行注册,提供诸如用户名、用户密码、电子邮件、甚至是电话号码、详细住址等个人隐私信息,然后才可以享受网站提供的一些特殊的信息或者服务。为了增加安全性,有必要对数据库中的隐私数据进行加密。
MD5算法,即“Message-Digest Algorithm 5(信息-摘要算法)”,它是由MD2、MD3、MD4 发展而来的一种单向加密算法,也就是哈希(HASH)算法,是由国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90 年代初开发出来的。现在,MD5已经被广泛的应用到项目实践中。
加密算法一般有两种,即单向加密算法和双向加密算法。双向加密是加密算法中最常用的,它将可以直接理解的明文数据加密为不可直接理解的密文数据,在需要的时候,又可以使用一定的算法将这些加密以后的密文数据解密为原来的明文数据。单向加密则刚好相反,它只能对明文数据进行加密,而不能对加密了的密文数据再解密成原来的明文数据。
MD5算法就是单向加密的加密算法。它有两个很重要的特性,第一是任意两段明文数据,加密以后的密文数据一定是不相同的;第二是任意一段明文数据,经过加密以后,其密文数据永远是相同的。
新建一个控制台应用程序。用于加密文本smallville。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; namespace MD5Test { class Program { // 使用MD5加密字符串的方法 public static string GetMd5Str(string myString) { MD5 md5 = new MD5CryptoServiceProvider(); // 获取字符串对应的字符数组 byte[] fromData = System.Text.Encoding.Unicode.GetBytes(myString); // 获取哈希字符串数组 byte[] toData = md5.ComputeHash(fromData); string byteStr = null; for (int i = 0; i < toData.Length; i++) { // 将字符数组连接还原成字符串,以十六进制的方式表示,不带前导"0x" byteStr += toData[i].ToString("x"); } return byteStr; } static void Main(string[] args) { string md5Str = "smallville"; string md5NewStr = GetMd5Str(md5Str); Console.WriteLine(md5NewStr); Console.ReadLine(); } } }
PS:需要引用System.Security.Cryptography命名空间。
输出结果为:
时间: 2024-10-26 09:55:39