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加密工具类主要代码,供 ...
随机推荐
- P1667 数列
题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足Ax +Ax+1 +…+ AY<0, ...
- BZOJ4753:[JSOI2016]最佳团体——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4753 JSOI信息学代表队一共有N名候选人,这些候选人从1到N编号.方便起见,JYY的编号是0号. ...
- BZOJ5333:[SDOI2018]荣誉称号——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5333 https://www.luogu.org/problemnew/show/P4620 题意 ...
- BZOJ2038:[2009国家集训队]小Z的袜子——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找 ...
- BZOJ1036:[ZJOI2008]树的统计——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1036 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来 ...
- 读取proc/uptime信息。
#include <stdio.h> #include<unistd.h> #include<sys/types.h> #include<sys/stat.h ...
- Gaby And Addition Gym - 101466A (初学字典树)
Gaby is a little baby who loves playing with numbers. Recently she has learned how to add 2 numbers ...
- select和epoll概念
关于linux的I/O复用接口select和epoll,下列说法错误的是() select调用时会进行线性遍历,epoll采用回调函数机制,不需要线性遍历 select的最大连接数为FD_SETSIZ ...
- C#学习之泛型准备
想要把泛型搞明白,最好先弄明白下面的代码实例 本实例是建立了两个类,然后在类中可以添加任意类型的值,并且可以利用foreach语句读出 //第一个节点类,放在一个文件中 using System; u ...
- git branch 重命名
有时候你会有重命名一个git branch的冲动,不要怀疑,这是真的.command bellow will give u a big help,no thanks~ git branch - m o ...