MD5算法的使用
using System.Security.Cryptography;
using System.Text; StringBuilder sb = new StringBuilder();//构建一个字符串,来接受进行算法后的字符串
using (MD5 md=MD5.Create())//通过静态方法Creat()创建一个MD5对象
{
//ComputeHash()方法接受的参数为byte[]数组或者流,所以要通过编码将"aa"编码为byte数组,然后再传参
byte[] byteArr = md.ComputeHash(Encoding.UTF8.GetBytes("aa")); for (int i = ; i < byteArr.Length; i++)
{
sb.Append(byteArr[i].ToString("x2"));
}
}
Console.WriteLine(sb.ToString());
=====================================
对文件的MD5计算:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please input the file's path...");
string path = Console.ReadLine(); FileStream aFiles = new FileStream(path, FileMode.Open, FileAccess.Read) ;
Program a = new Program();
a.comput(aFiles);
Console.ReadLine();
}
public void comput(FileStream mdByteArr)
{
StringBuilder sb = new StringBuilder();
using (MD5 md = MD5.Create())
{
byte[] aFile = md.ComputeHash(mdByteArr);//直接传入一个流的重载
for (int i = ; i < aFile.Length; i++)
{
sb.Append(aFile[i].ToString("x2"));
}
}
Console.WriteLine(" md5 value is: {0}", sb.ToString());
} }
用MD5来存储用户密码,实现登陆功能:
private void btnLogin_Click(object sender, EventArgs e)
{
string name = txtName.Text.Trim();
string pwd = txtPwd.Text.Trim();
string sqlstr = "select count(*) from T_Seats where CC_LoginId=@id and CC_LoginPassword=@pwd";
SqlParameter[] spt = new SqlParameter[] {
new SqlParameter("@id",name),
new SqlParameter("@pwd",GetMd5Value(pwd))//拿到用户输入的密码的MD5值去跟数据库中的进行比较
};
if ((int)SqlHelper.ExecuteScalar(sqlstr, spt) > )
{
MessageBox.Show("access");
txtRePwd.Visible = true;
btnChangePwd.Visible = true;
}
else
{
MessageBox.Show("no");
}
} private string GetMd5Value(string original)
{
StringBuilder sb = new StringBuilder();
byte[] bytes = Encoding.Default.GetBytes(original);
MD5 mdf = MD5.Create();
byte[] endBytes = mdf.ComputeHash(bytes);
for (int i = ; i < endBytes.Length; i++)
{
sb.Append(endBytes[i].ToString("x2"));
}
mdf.Clear();
return sb.ToString();
}
MD5算法的使用的更多相关文章
- md5算法
md5算法 不可逆的:原文-->密文.用系统的API可以实现: 123456 ---密文 1987 ----密文: 算法步骤: 1.用每个byte去和11111111做与运算并且得到的是int类 ...
- MD5算法 简介
MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能 l 输入任 ...
- md5算法原理一窥(其一)
首先,需要了解的事,md5并不是传说中的加密算法,只是一种散列算法.其加密的算法并不是我们说所的那样固定不变,只是一种映射的关系. 所以解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD ...
- Java利用MessageDigest提供的MD5算法加密字符串或文件
MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性.用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm).另外还有一种常用的消息摘要算法SHA1.如果想了 ...
- python学习笔记(MD5算法)
博主最近进度停滞了 对web开发理解欠缺好多内容 今天整理下MD5算法,这个涉及到mysql数据库存储用户表密码字段的时候 一般是带有加密的 # -*- coding: utf-8 -*- impor ...
- 在MAC平台下编译Ngnix ,由于MD5算法不能编译通过 解决办法
近期想学习Ngnix 代码,前些日子,对”自己下手狠一次“, 买了MAC 本. 所以想在Mac 上编译,是必须的,不然对不起自己的内心. 不巧遇到了MD5算法编译的问题 src/core/ngx_cr ...
- MD5算法步骤详解
转自MD5算法步骤详解 之前要写一个MD5程序,但是从网络上看到的资料基本上一样,只是讲了一个大概.经过我自己的实践,我决定写一个心得,给需要实现MD5,但又不要求很高深的编程知识的童鞋参考.不多说了 ...
- Java 实现Md5算法
package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * ...
- MD5算法【计算文件和字符串的MD5值】
1. MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错).任何长度的任意内容都可以用MD5计算出散列值.MD5的前身:MD2.MD3.MD4.介绍工具:CalcMD5 ...
- 经常使用MD5算法代码
经常使用的MD5算法代码日期: 2014年8月4日作者: 铁锚 MD5,全称为 Message Digest Algorithm 5(消息摘要算法第五版).详情请參考 维基百科:MD5 MD5加密后 ...
随机推荐
- 【Java】WebService教程
Web Services Web Services可以将应用程序转换为网络应用程序. Web Services可以被其他应用程序利用. 基本的Web Services平台是XML + HTTP. WS ...
- Java中的属性与字段的区别
Java中属性和字段的区别 Java中的属性,通常可以理解为其属名性时根据get和set方法名得出的. 其规则是:去掉get或set后其剩余的字符串,如果第二个字母是小写的,则把第一个字母也变成小写 ...
- WallsEveryDay 必应桌面壁纸
软件名:WallsEveryday 陈述: 无聊时写着玩的一个桌面壁纸的软件,壁纸是自动从必应下载,所以每天都会有新的. 在ubuntu上测试通过,windows上找了台win7测试通过,其他没测试. ...
- Light OJ 1025 - The Specials Menu(区间DP)
题目大意: 给你一个字符串,问有多少种方法删除字符,使得剩下的字符是回文串. 有几个规定: 1.空串不是回文串 2.剩下的字符位置不同也被视为不同的回文串.如:AA有三种回文串 A, A, A ...
- Rotate List —— LeetCode
Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...
- HTML参考手册
New : HTML5 中的新标签. 标签 描述 <!--...--> 定义注释. <!DOCTYPE> 定义文档类型. <a> 定义锚. <abbr> ...
- ubuntu12编译openwrt
搭建编译环境 Ubuntu x64 12.04下的命令: sudo apt-get install subversion sudo apt-get install git sudo apt-get i ...
- ReportViewer中设置ServerReport.ReportServerCredentials属性的方法
当使用SSRS技术来布置报表,可能使用MS自带的ReportViewer控件来读取报表. 它分为Web和Windows两种版本;此处Web版. ServerReport.ReportServerCre ...
- sql第一课笔记
这是我看了imooc的视频教程之后重新写的笔记. 虽然之前也是学习过SQL Server数据库,但是也是忘记得差不多了.现在重新捡起来,安装一次数据库练习,使用的是mysql. 第一课是最简单的创建, ...
- mybatis3温故
MyBatis可以利用SQL映射文件来配置,也可以利用Annotation来设置.MyBatis提供的一些基本注解如下表所示. 注解 目标 相应的XML 描述 @CacheNamespace 类 &l ...