C# MD5加密

1120阅读 0评论2015-08-30 xuanying_china
分类:C#/.net

首先,先简单介绍一下MD5

MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2、md3和md4发展而来。

MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小)

点击(此处)折叠或打开

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security.Cryptography;
  5. using System.Text;
  6. using System.Threading.Tasks;

  7. namespace _01MD5加密
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             //woaini woaini
  14.             //202cb962ac59075b964b07152d234b70
  15.            // string s = GetMD5("123");
  16.             //202cb962ac59075b964b07152d234b70
  17.             //202cb962ac59075b964b07152d234b70
  18.             //202cb962ac5975b964b7152d234b70
  19.             //3244185981728979115075721453575112
  20.             //Console.WriteLine(s);
  21.             //Console.ReadKey();
  22.             //double n = 123.456;
  23.             //Console.WriteLine(n.ToString("C"));
  24.             //Console.ReadKey();
  25.         }

  26.         public static string GetMD5(string str)
  27.         {
  28.             //创建MD5对象
  29.             MD5 md5 = MD5.Create();
  30.             //开始加密
  31.             //需要将字符处转换成字节数组
  32.             byte[] buffer = Encoding.GetEncoding("GBK").GetBytes(str);
  33.             //返回一个加密好的字节数组
  34.             byte[] MD5Buffer = md5.ComputeHash(buffer);

  35.             //将字节数组转换成字符串
  36.             //字节数组---字符串
  37.             //将字节数组中每个元素按照指定的编码格式解析成字符串
  38.             //直接将数组ToString();
  39.             //将字节数组中的每个元素ToString()
  40.           // return Encoding.GetEncoding("GBK").GetString(MD5Buffer);

  41.             // 189 273 345 我爱你
  42.             // 189 273 345
  43.             string strNew = "";
  44.             for (int i = 0; i < MD5Buffer.Length; i++)
  45.             {
  46.                 strNew += MD5Buffer[i].ToString("x2");
  47.             }
  48.             return strNew;
  49.         }
  50.     }
  51. }

上一篇:C# 值传递和引用传递
下一篇:C# using三种使用方式