美文网首页
MD5加密讲解(C#版)

MD5加密讲解(C#版)

作者: 炉石不传说 | 来源:发表于2019-10-16 20:16 被阅读0次

    1、先简单介绍一下什么是MD5

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

        MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小),如果你的加密文件是一串消息字符串,没有特殊字符,很容易解密,如果是比较复杂的字符串文件,就很难解密了。附上接个免费界面地址:https://pmd5.com/

    2、使用场景介绍

        比如你要传送一个贵重的物品id给服务器,这时候对物品id进行加密,你可以传送一个id 和一个md5id,,服务器收到你的id之后,会根据你们双方月底的md5id加密算法进行加密,比如你们约定一个物品加密accesskey="access20191012key",那么md5id就可以调用GetMD5Hash(),参数strHash = id+accesskey,由于破解者,不知道accesskey,所有他加密的md5id可能和你们的不一样,服务器只需要验证id和md5id是否和服务器那边算出来的一样就行了。这样就可以防止重要数据被篡改。md5的值都是用来进行校验的,服务器也不需要界面md5,只需要按照同样的方式进行一次加密比较就可以了。一般在web开发通信中应用比较多。通常在传输重要信息时,url里面的内容都需要md5加密传输。服务器数据库存储用户名字和密码,一般存储的也是加密后的md5值,然后每次通过加密对比md5来确定密码是否正确。

      using System.Security.Cryptography;

      using System.Text;

      void Start ()

        {

            string strHash= "HelloWorld";

            Debug.Log(GetMD5Hash(strHash));

        }

        string GetMD5Hash(string strHash_)

        {

            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

            byte[] bytes = Encoding.ASCII.GetBytes(strHash_);

            byte[] encoded = md5.ComputeHash(bytes);

            StringBuilder sb = new StringBuilder();

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

            {

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

            }

            return sb.ToString();

        }

    相关文章

      网友评论

          本文标题:MD5加密讲解(C#版)

          本文链接:https://www.haomeiwen.com/subject/etxpmctx.html