zoukankan      html  css  js  c++  java
  • 加密之MD5加密

    MD5算法是什么?

    它可以讲字符串或者一个文件流变成一个长度为32的字符串

    特点: 加密不可逆

    MD5存在的意义:

    写法:用C#实现MD5

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

        准备一个字符串

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

        创建MD5对象,调用其ComputeHash方法

        得到一个16个字节的字节数组

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

    代码:

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

        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();

  • 相关阅读:
    apiCloud授权绑定第三方账号,微信、QQ、微博。
    Java中JTree的简单案例
    Java中的Swing键盘绑定案例
    Beej网络socket编程指南
    IP处理函数inet_aton()和inet_ntoa(),inet_pton,inet_ntop
    Hadoop开发环境搭建
    Lua和Javascript差异对比
    Lua table pair和ipair区别
    lua中求table长度
    lua metatable和metamethod元表和元方法
  • 原文地址:https://www.cnblogs.com/jerrylucky/p/3234090.html
Copyright © 2011-2022 走看看