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. apt-key 命令

    学习参照网上教程在容器中搭建nginx时看到apt-key命令不解,记录一下.一下是 --help中的解释. apt-key命令解释: apt-key add <file> - add t ...

  2. 【刷题】BZOJ 2539 [Ctsc2000]丘比特的烦恼

    Description 随着社会的不断发展,人与人之间的感情越来越功利化.最近,爱神丘比特发现,爱情也已不再是完全纯洁的了.这使得丘比特很是苦恼,他越来越难找到合适的男女,并向他们射去丘比特之箭.于是 ...

  3. [国家集训队]最长双回文串 manacher

    ---题面--- 题解: 首先有一个直观的想法,如果我们可以求出对于位置i的最长后缀回文串和最长前缀回文串,那么我们枚举分界点然后合并前缀和后缀不就可以得到答案了么? 所以我们的目标就是求出这两个数列 ...

  4. BZOJ3781:小B的询问——题解

    https://www.luogu.org/problemnew/show/2709 http://www.lydsy.com/JudgeOnline/problem.php?id=3781 题目描述 ...

  5. HTTPS证书生成方法,也适用于APP

    步骤: 一.登录服务器,创建ioscert目录 cd ~/servers/APP mkdir ioscert 二.cd到ioscert目录下,执行以下命令: 1.openssl genrsa -out ...

  6. fhq_treap 学习笔记

    前言:昨天写NOIp2017队列,写+调辗转了3h+,不知道怎么的,就点进了一个神仙的链接,便在今日学习了神仙的fhq_treap. 简介:fhq_treap功能强大,支持splay支持的所有操作,代 ...

  7. webpack开发模式和生产模式设置及不同环境脚本执行

    1. webpack设置开发模式和生产模式 (1). DefinePlugin插件设置 new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '& ...

  8. PHP检测json格式数据

    首先要记住json_encode返回的是字符串, 而json_decode返回的是对象 判断数据不是JSON格式: 复制代码代码如下: function is_not_json($str){      ...

  9. windows内存映射文件

    http://shushanyegui.duapp.com/?p=731 在描述内存映射文件之前 我们先来写一个系统通过I/O来读写磁盘文件的小程序 #include "stdafx.h&q ...

  10. 1、搭建Struts2开发环境

    一.Struts2简介: Struts2是在WebWork2的基础上发展而来的.和struts1一样, Struts2也属于MVC框架.不过有一点大家需要注意的是:尽管Struts2 和 struts ...