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算法的使用的更多相关文章

  1. md5算法

    md5算法 不可逆的:原文-->密文.用系统的API可以实现: 123456 ---密文 1987 ----密文: 算法步骤: 1.用每个byte去和11111111做与运算并且得到的是int类 ...

  2. MD5算法 简介

    MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能 l 输入任 ...

  3. md5算法原理一窥(其一)

    首先,需要了解的事,md5并不是传说中的加密算法,只是一种散列算法.其加密的算法并不是我们说所的那样固定不变,只是一种映射的关系. 所以解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD ...

  4. Java利用MessageDigest提供的MD5算法加密字符串或文件

    MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性.用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm).另外还有一种常用的消息摘要算法SHA1.如果想了 ...

  5. python学习笔记(MD5算法)

    博主最近进度停滞了 对web开发理解欠缺好多内容 今天整理下MD5算法,这个涉及到mysql数据库存储用户表密码字段的时候 一般是带有加密的 # -*- coding: utf-8 -*- impor ...

  6. 在MAC平台下编译Ngnix ,由于MD5算法不能编译通过 解决办法

    近期想学习Ngnix 代码,前些日子,对”自己下手狠一次“, 买了MAC 本. 所以想在Mac 上编译,是必须的,不然对不起自己的内心. 不巧遇到了MD5算法编译的问题 src/core/ngx_cr ...

  7. MD5算法步骤详解

    转自MD5算法步骤详解 之前要写一个MD5程序,但是从网络上看到的资料基本上一样,只是讲了一个大概.经过我自己的实践,我决定写一个心得,给需要实现MD5,但又不要求很高深的编程知识的童鞋参考.不多说了 ...

  8. Java 实现Md5算法

    package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * ...

  9. MD5算法【计算文件和字符串的MD5值】

    1. MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错).任何长度的任意内容都可以用MD5计算出散列值.MD5的前身:MD2.MD3.MD4.介绍工具:CalcMD5 ...

  10. 经常使用MD5算法代码

    经常使用的MD5算法代码日期: 2014年8月4日作者: 铁锚 MD5,全称为 Message Digest Algorithm 5(消息摘要算法第五版).详情请參考 维基百科:MD5  MD5加密后 ...

随机推荐

  1. matlab取整

    matlab取整 Matlab取整函数有: fix, floor, ceil, round.取整函数在编程时有很大用处.一.取整函数1.向零取整(截尾取整)fix-向零取整(Round towards ...

  2. 【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序

    本技巧建立了一个使用统一描述.发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例.作 ...

  3. cf C. Fox and Box Accumulation

    题意:输入一个n,然后输入n个数,问你可以划分多少个序列,序列为:其中一个数为c,在它的前面最多可以有c个数. 思路:先排序,然后对于每一个数逐步的找没有被用过的数,且这个数可以符合条件,然后如果没有 ...

  4. hdu 5151 Sit sit sit

    http://acm.hdu.edu.cn/showproblem.php?pid=5151 题意:一共有N个椅子,然后有N个学生依次去坐,满足下面三个条件不能坐上去,1:这个椅子旁边有左椅子也有右椅 ...

  5. 对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解(转)

    所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合 ...

  6. Hibernate 配置详解(3)

    7) hibernate.max_fetch_depth: 该属性用于设置left out join单对象查询关系(one-to-one/many-to-one)中最大的关联深度.默认值为0,即默认情 ...

  7. BZOJ1726: [Usaco2006 Nov]Roadblocks第二短路

    1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 768  Solved: 369[S ...

  8. hust-1024-dance party(最大流--枚举,可行流判断)

    题意: 舞会上,男孩和女孩配对,求最大完全匹配个数,要求每个人最多与k个不喜欢的人配对,且每次都和不同的人配对. 分析: 将一个点拆成3个点. b,  b1, b2.   从1到n枚举ans,  判可 ...

  9. 【拓扑】【宽搜】CSU 1084 有向无环图 (2016湖南省第十二届大学生计算机程序设计竞赛)

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1804 题目大意: 一个有向无环图(DAG),有N个点M条有向边(N,M<=105 ...

  10. 【模拟】Codeforces 711B Chris and Magic Square

    题目链接: http://codeforces.com/problemset/problem/711/B 题目大意: N*N的矩阵,有且只有一个0,求要把这个矩阵变成幻方要填什么正数.无解输出-1.幻 ...