MD5加密讲解(C#版)

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

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,310评论 6 13
  • 数据加密的基本过程就是对原来为明文的文件或数据按某种加密算法进行处理,使其成为一段不可读的代码,通常称为“密文”,...
    Time_x阅读 18,051评论 1 1
  • 在介绍加密算法之前, 先介绍一下 base64: 0. base64 Base64要求把每三个8Bit的字节转换为...
    reboot_q阅读 13,491评论 3 8
  • 之前的项目中接触过一些加密的方法,也没有太仔细的进行记录和研究。最近在写SDK时,加密模块的占比相当之大;借此时机...
    过半_e764阅读 641评论 0 0
  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,077评论 0 7