MD5(Message Digest --消息摘要算法)算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错),任何长度的任意内容都可以用MD5计算出散列值。主要作用是【验明“真身”】,字符串与文件均可。MD5多用于注册密码的加密。

MD5长度一般是32位的16进制数字符串,MD5值的个数是有限的,但是元数据是无限的,因此存在着不同的内容产生相同的内容产生相同MD5值的概率。因此MD5算法不可逆,也就是智能得到内容对应的MD5值,无法由MD5值反推内容,但是对不同的内容产生的MD5值的概率非常非常非常低。

asp.net中MD5的使用思维:

1.创建一个计算MD5值的对象

2.调用该对象的方法进行MD5计算

3.把结果以字符串的形式返回

asp.net中MD5加密的具体实现(字符串和文件):

 /// <summary>
/// 字符串的MD5加密
/// </summary>
/// <param name="strSource">要加密的字符串</param>
/// <returns>返回32位加密的字符串</returns>
public static string GetMd5String(string strSource)
{
StringBuilder sb = new StringBuilder();
//1.创建一个计算md5值的对象
using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
{
byte[] byteResult =System.Text.Encoding.Default.GetBytes(strSource); //2.调用该对象的方法进行MD5计算
byte[] md5Byte= md5.ComputeHash(byteResult); //3.把结果以字符串的形式返回
for (int i = ; i < md5Byte.Length; i++)
{
//"x"表示转换为小写的十六进制的,"X"大写的十六进制的
sb.Append(md5Byte[i].ToString("x2"));
}
}
return sb.ToString();
}

字符串MD5加密源码

  /// <summary>
/// 文件的MD5加密
/// </summary>
/// <param name="filePath">文件路径</param>
/// <returns>返回的md5加密了的32位字符串</returns>
public static string GetMd5StringFromFile(string filePath)
{
StringBuilder sb = new StringBuilder();
using (System.Security.Cryptography.MD5 md5=System.Security.Cryptography.MD5.Create())
{
using (System.IO.FileStream fs=System.IO.File.OpenRead(filePath))
{
byte[] md5Byte = md5.ComputeHash(fs);
for (int i = ; i < md5Byte.Length; i++)
{
sb.Append(md5Byte[i].ToString("x2"));
}
}
}
return sb.ToString();
}

文件MD5加密源码

注意:创建对象时用不用using自动释放内存,看这个类(或其父类)是否继承IDisposable接口。

MD5加密学习的更多相关文章

  1. C# Winform MD5加密学习积累

    string password = txtPassword.Text.Trim(); byte[] result = Encoding.Default.GetBytes(password); MD5 ...

  2. 【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)

    最近在写一个C#的项目,用户需求是实现Winform的多文档界面与Matlab算法程序之间的交互.做了一段时间发现,这既能利用业余时间,实战中也可学习一些技术,同时刚毕业也增加一份收入.所以后面会不断 ...

  3. IOS开发-OC学习-MD5加密

    MD5的全称是Message-Digest Algorithm 5. MD5加密算法为现在应用最广泛的哈希算法之一,该算法广泛应用于互联网网站的用户文件加密,能够将用户密码加密为128位的长整数.数据 ...

  4. 基础学习14天 MD5加密

    private static string GetMD5(string str) { //创建MD5对象 MD5 md5 = MD5.Create(); //字符串类型转换Wie字节 byte[] b ...

  5. Spring-Security (学习记录五)--配置登录时,密码采用md5加密,以及获取登录信息属性监听同步自己想要的登录信息

    目录 1. PasswordEncoder 采用密码加密 2. 获取当前的用户信息 1. PasswordEncoder 采用密码加密 使用前面的例子.可以看出我们数据库密码是采用明文的,我们在登录的 ...

  6. day25 Pyhton学习 MD5加密.日志

    一.MD5加密 MD5是一种不可逆的加密算法. 它是可靠的. 并且安全的. 在python中我们不需要手写这一套算法. 只需要引入一个叫hashlib的模块就能搞定MD5的加密工作 import ha ...

  7. IOS中把字符串加密/IOS中怎么样MD5加密/IOS中NSString分类的实现

    看完过后,你会学到: 1学习IOS开发中的分类实现, 2以及类方法的书写, 3以及字符串的MD5加密/解密. ---------------------------wolfhous---------- ...

  8. 简单讲解iOS应用开发中的MD5加密的相关使用<转>

    这篇文章主要介绍了iOS应用开发中的MD5加密的相关使用,示例代码基于传统的Objective-C,需要的朋友可以参考下 一.简单说明 1.说明 在开发应用的时候,数据的安全性至关重要,而仅仅用POS ...

  9. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

随机推荐

  1. CMD命令提示符

    mspaint  画图板 notepad  打开记事本 write  写字板 calc.exe  计算器 control.exe  控制面板 osk  打开屏幕键盘 rononce -p ----15 ...

  2. 算法语言Scheme修订6报告 R6RS简体中文翻译

    算法语言Scheme修订6报告 R6RS简体中文翻译 来源 https://r6rs.mrliu.org/   MICHAEL SPERBERR. KENT DYBVIG, MATTHEW FLATT ...

  3. 2017中国大学生程序设计竞赛-哈尔滨站 H - A Simple Stone Game

    A Simple Stone Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Ot ...

  4. 【题解】Atcoder AGC#01 E-BBQ Hard

    计数题萌萌哒~ 这道题其实就是统计 \(\sum_{i=1}^{n}\sum_{j=i+1}^{n}C\binom{a[i] + a[j]}{a[i] + a[j] + b[i] + b[j]}\) ...

  5. [HAOI2006]受欢迎的牛 tarjan缩点 + 拓扑排序

    ---题面--- 题解: 首先tarjan缩点应该还是容易想到的,因为喜爱具有传递性,所以一个强联通分量里面的点实际上是全部等效的,所以我们可以缩成一个方便判断, 缩完点之后整张图就变成了一个有向无环 ...

  6. Codeforces VK Cup Finals #424 Div.1 C. Bamboo Partition(数论)

    题目要求符合以下条件的最大的d 化简得 注意到 最多只有2*sqrt(a[i]-1)种取值,也就是一共最多有n*sqrt(10^19)种取值,于是枚举一下d,计算出符合上上式的最大的d更新答案,然后d ...

  7. JavaScript非阻塞加载脚本

    As more and more sites evolve into “Web 2.0″ apps, the amount of JavaScript increases. This is a per ...

  8. java 在centos6.5+eclipse环境下调用opencv实现sift算法

    java 在centos6.5+eclipse环境下调用opencv实现sift算法,代码如下: import org.opencv.core.Core; import org.opencv.core ...

  9. STL之三:deque用法详解

    转载于:http://blog.csdn.net/longshengguoji/article/details/8519812 deque函数: deque容器为一个给定类型的元素进行线性处理,像向量 ...

  10. UVA796:Critical Links(输出桥)

    Critical Links 题目链接:https://vjudge.net/problem/UVA-796 Description: In a computer network a link L, ...