MD5加密学习
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加密学习的更多相关文章
- C# Winform MD5加密学习积累
string password = txtPassword.Text.Trim(); byte[] result = Encoding.Default.GetBytes(password); MD5 ...
- 【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)
最近在写一个C#的项目,用户需求是实现Winform的多文档界面与Matlab算法程序之间的交互.做了一段时间发现,这既能利用业余时间,实战中也可学习一些技术,同时刚毕业也增加一份收入.所以后面会不断 ...
- IOS开发-OC学习-MD5加密
MD5的全称是Message-Digest Algorithm 5. MD5加密算法为现在应用最广泛的哈希算法之一,该算法广泛应用于互联网网站的用户文件加密,能够将用户密码加密为128位的长整数.数据 ...
- 基础学习14天 MD5加密
private static string GetMD5(string str) { //创建MD5对象 MD5 md5 = MD5.Create(); //字符串类型转换Wie字节 byte[] b ...
- Spring-Security (学习记录五)--配置登录时,密码采用md5加密,以及获取登录信息属性监听同步自己想要的登录信息
目录 1. PasswordEncoder 采用密码加密 2. 获取当前的用户信息 1. PasswordEncoder 采用密码加密 使用前面的例子.可以看出我们数据库密码是采用明文的,我们在登录的 ...
- day25 Pyhton学习 MD5加密.日志
一.MD5加密 MD5是一种不可逆的加密算法. 它是可靠的. 并且安全的. 在python中我们不需要手写这一套算法. 只需要引入一个叫hashlib的模块就能搞定MD5的加密工作 import ha ...
- IOS中把字符串加密/IOS中怎么样MD5加密/IOS中NSString分类的实现
看完过后,你会学到: 1学习IOS开发中的分类实现, 2以及类方法的书写, 3以及字符串的MD5加密/解密. ---------------------------wolfhous---------- ...
- 简单讲解iOS应用开发中的MD5加密的相关使用<转>
这篇文章主要介绍了iOS应用开发中的MD5加密的相关使用,示例代码基于传统的Objective-C,需要的朋友可以参考下 一.简单说明 1.说明 在开发应用的时候,数据的安全性至关重要,而仅仅用POS ...
- wemall app商城源码android开发MD5加密工具类
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...
随机推荐
- jQuery全选反选实例
1. $('#tb:checkbox').each(function(){ 每次都会执行 全选-取消操作,注意$('#tb :checkbox').prop('checked',true); tb后面 ...
- CentOS 压缩(打包)和解压
1.tar命令 -c 创建压缩文件 -x 解开压缩文件 -t 查看压缩包内有哪些文件 -z 用 Gzip压缩或解压 -j 用 bzip2压缩或解压 -v 显示压缩或解压的过程 -f 目标文件名,在 f ...
- BFS的小结
写这类搜索题.首先感觉要有个框架.比如我的框架对于BFS来说(对于DFS,我想有两个一个是递归版一个是栈版).这里是BFS小结.所以介绍一下BFS.我的框架.(也是搜集了网上许多神人的作品.) 1:节 ...
- 【刷题】BZOJ 4503 两个串
Description 兔子们在玩两个串的游戏.给定两个字符串S和T,兔子们想知道T在S中出现了几次, 分别在哪些位置出现.注意T中可能有"?"字符,这个字符可以匹配任何字符. I ...
- BZOJ4259:残缺的字符串——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4259 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度 ...
- 使用 XHProf 分析你的 PHP 程序
个人说明: 注意: php5.5运行 xhprof_enable 会发生段错误Segmentation fault: ,这是一个已知的bug. 下面是报错测试脚本: function loader( ...
- Vue推荐资料
推荐博文(我是看过,才敢说的偶): 基础教学: 菜鸟语法教程:https://cn.vuejs.org/v2/guide/syntax.html http://www.runoob.com/vue2 ...
- 那些常用的JS命令
window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象(用于框架) opener.location.reload()刷新父窗口对象 ...
- jq的each理解
1种 通过each遍历li 可以获得所有li的内容 <!-- 1种 --> <ul class="one"> <li>11a</li> ...
- HDU 2852 主席树
KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...