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

    简介: MD5消息摘要算法(Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

    应用-安全认证: MD5可以将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。

    实现:

    	static void Main(string[] args)
            {
                string str = "123";
                string MD5String = GetMd5(str);
                Console.WriteLine(MD5String);
                Console.ReadKey();
            }
    
            /// <summary>
            /// 加密方法
            /// </summary>
            static string GetMd5(string str) 
            {
            	//MD5实例化
                MD5 md5 = new MD5CryptoServiceProvider();
                //字符串转换为字节
                byte[] buffer = Encoding.Default.GetBytes(str);
                //加密
                byte[] bufferMD5 = md5.ComputeHash(buffer);
    
                //转成字符串        
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < bufferMD5.Length;i++ ) 
                {
                    sb.Append(bufferMD5[i].ToString("X2"));
                }
                return sb.ToString();
            }
    

    ToString()的X用法:

    X    十六进制  
    X是大写,x是小写
    X2     每次都是两位数。比如:0x0A   如果是X,就只会输出0xA;如果是X2,就只会输出0x0A       
    

    Bug:
    MD5对象实例化可能会存在异常情况,异常信息:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。 解决参考文章:https://blog.csdn.net/qq_36330228/article/details/83049469

    资料:
    https://baike.baidu.com/item/MD5/212708?fr=aladdin
    https://blog.csdn.net/qq_36330228/article/details/83049469

  • 相关阅读:
    spring mvc返回json字符串的方式
    springmvc的数据校验
    Spring MVC拦截器
    HTML5
    再续前缘CSS3
    Spring MVC文件上传和下载
    初始CSS3
    Spring MVC类型转换
    Spring MVC重定向和转发及异常处理
    Spring MVC注解入门
  • 原文地址:https://www.cnblogs.com/wangqilong/p/10088355.html
Copyright © 2011-2022 走看看