MD5加密字符串与文件
2013-10-28 12:15
411 查看
using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.IO; namespace md5 { public class MD5 { /// <summary> /// 加密字符串,对密码等敏感信息加密 /// </summary> /// <param name="str"></param> /// <returns></returns> public string MD5Str(string str) { //创建加密对象 System.Security.Cryptography.MD5 md5 = new MD5CryptoServiceProvider(); //将字符串转为字符数组 byte[] bStr = Encoding.UTF8.GetBytes(str); //加密 byte[] sMd5 = md5.ComputeHash(bStr); md5.Clear(); //格式转换 StringBuilder sb = new StringBuilder(); foreach (var item in sMd5) { sb.Append(item.ToString("x2")); } return sb.ToString(); } /// <summary> /// 加密文件,通常用于文件完整性校验,如当下载一个文件时,会得到一个文件MD5值。 /// 文件下载完成后由用户自行加密,得到一个MD5值,两个MD5相比较。 /// 如果完全一样,表示此文件没有被第三方修改过,即可确认为此文件就是上传方上传的完整文件,安全程度高 /// </summary> /// <param name="path"></param> /// <returns></returns> public string MD5File(string path) { StringBuilder sb = new StringBuilder(); using (FileStream fs = File.OpenRead(path)) { System.Security.Cryptography.MD5 md5 = new MD5CryptoServiceProvider(); byte[] bMd5 = md5.ComputeHash(fs); md5.Clear(); foreach (var item in bMd5) { sb.Append(item.ToString("x2")); } return sb.ToString(); } } //说明:1、ToString("x2") ToString()中的字符代表着字符串的格式控制,X代表16进制,2代表着两位数,不足位是补0(零) // 此外还有ToString("d") 格式为:2003-9-23。 ToString("t") 格式为:14:24 } }
对于MD5的真正解密并不存在,在密码的应用中,采用的是碰撞方式
相关文章推荐
- Android初级教程:对文件和字符串进行MD5加密工具类
- MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
- 对文件、字符串和byte数组进行MD5加密
- OC获取文件MD5值与swift字符串MD5加密方法
- MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
- C#实现字符串,文件获取Md5加密校验方法
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
- MD5加密(字符串、文件)工具类,直接用!!!
- OC之使用MD5加密字符串、NSData和文件的方法
- Java的字符串md5加密和文件md5
- Android初级教程:对文件和字符串进行MD5加密工具类
- Android (代码片段) 将网络或文件字节流转换为字符串(UT-8格式的)在进行网络交互时特别重要
- Java对比两个文件统计字符串相同行的数量
- linux中查找某类文件中的特定字符串
- Java DES 加解密字符串、文件 工具类通用
- 查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
- Linux中快速查询所有文件中的某个字符串的命令
- 从键盘输入一系列字符串,写入到某磁盘文件中