加密之MD5加密

MD5算法是什么?

它能够讲字符串或者一个文件流变成一个长度为32的字符串算法

特色: 加密不可逆数组

MD5存在的意义:ui

写法:用C#实现MD5加密

1.将字符串用MD5算法处理

    准备一个字符串对象

    将字符串变成一个字符数组md5

    建立MD5对象,调用其ComputeHash方法字符串

    获得一个16个字节的字节数组string

    使用SB拼接,将每一个字节用ToString("x2")处理it

代码:

  ---------------------将一个字符串用MD5处理-------------------------coding

    string str="abc";

    //字节数组

    //若是是字符串是英文,用Encoding.UTF8,若是是中文就用Encoding.GetEncoding("gb2312")

    bytes[] bs = Encoding.UTF8.GetBytes(str);

    //准备MD5对象

        MD5 md5 = MD5.Create();

    //计算指定字节数组的哈希值

    bs=md5.ComputeHash(bs);

    StringBuilder sb = new StringBuilder();

由于对于字节若是用十进制表示为0-255,用二进制表示为0000000-11111111,十六进制为000000-FFFFFF,为了统一处理,这里作了统一,用十六进制

    for(int i=0;i<bs.Length;i++)

    {

       sb.Append(bs[i].ToString("x2"));

    }

    Console.WriteLine(sb.ToString());

    Console.ReadKey();

  ----------------------将一个文件用MD5算法处理-----------------------

    MD5 md5=MD5.Create();

    string path=@"文件路径";

    //准备好byte数组

    byte[]bs;

    using(FileStream file= new FileStream(path,FileMode.Open,FileAccess.Read))

    {

       bs = md5.ComputeHash(file);

    }

    //后面的代码和上面处理字符串的代码同样用

    for(int i=0;i<bs.length;i++)

    {

       sb.Append(bs[i].ToString("x2"));

    }

    Console.WriteLine(sb.ToString());

    Console.ReadKey();