MD5加密
来源:互联网 发布:供给侧 知乎 编辑:程序博客网 时间:2024/05/17 20:22
(1) MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法,任何长度的任意内容都可以用MD5计算出散列值
(2)无论字符串还是文件都可以计算MD5值,无论字符串长短,还是文件大或者小,计算出来的MD5值得位数相同
(3)不可逆,不可能根据现有的MD5值,计算出原来的字符串是什么
(4)不可重复性(理论上可以重复,但是几率很小)
(5)MD5算法理论上是不可逆的,因此攻击的唯一办法就是碰撞,两个不同的内容生成相同的MD5值,这就是碰撞
using System.Security.Cryptography; static string GetMD5(string str, int code) { string convertStr = null; MD5 md5 = MD5.Create();//实例化一个MD5对象,也可以这样: //MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); if (code == 16)//16位加密 { byte[] value = Encoding.GetEncoding("UTF-8").GetBytes(str);//将字符串转化为UTF8格式的字节数组 byte[] data = md5.ComputeHash(value);//计算指定数组的哈希值 string byteToStr = BitConverter.ToString(data);//将字节数组转换为字符串 convertStr = byteToStr.Replace("-","").Substring(8, 16);//移除字符串中的“-”,并从第8位开始,截取16位字符 } else if (code == 32)//32位加密 { byte[] value = UTF8Encoding.Default.GetBytes(str); byte[] data = md5.ComputeHash(value);//使用十六进制类型格式 StringBuilder sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sb.Append(data[i].ToString("x2"));//直接ToString()后的字符是小写的字母,如果使用大写则格式为ToString("X") } convertStr = sb.ToString(); } return convertStr; }
- MD5加密
- MD5加密
- md5加密
- MD5加密
- md5加密
- MD5加密
- MD5加密
- md5 加密
- MD5加密
- md5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- android202--RES目录默认有几种Resources
- iOS UIalertView 消失的时候闪屏 更新UI放主线程
- JAVA连接SQL_2008,通过JDBC_ODBC连接
- 软件开发实践的24条军规
- ORACLE MERGE INTO
- MD5加密
- 如何用.xib 自定义UITableViewCell
- T-SQL 中转换日期为各种格式
- jQuery EasyUI 中文API教程
- Drupal7 Note-2: chmod xxx settings.php
- STL中map的基本应用
- js 回车提交表单的实现
- 手势和UI控件之间冲突的解决方法(比如UITapGesture和UIButton冲突,UIPanGesture和UISlider冲突)
- 焦点