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. 【转】nodejs

    Node.JS + MongoDB技术讲座            云计算 + 大数据 = 未来. 在中国的云计算上基本上是一个概念,个人感觉与当初的SOA没有太大的区别,空泛的理论. 中小型开发的未来 ...

  2. 【技术贴】第二篇 :解决使用maven jetty启动后无法加载修改过后的静态资源

    之前写过第一篇:[技术贴]解决使用maven jetty启动后无法加载修改过后的静态资源 一直用着挺舒服的,直到今天,出现了又不能修改静态js,jsp等资源的现象.很是苦闷. 经过调错处理之后,发现是 ...

  3. Unity3d IOS中的IGUI控件

    Unity3d IOS中的IGUI控件 @灰太龙  群63438968 我讲一下IOS中用的UI,我们采用IGUI,需要使用IGUI的高版本,在Unity3d 4.2中也可以使用的! 之前IGUI有个 ...

  4. [原创]leet code - path sum

    ;            ;                ;                            }        }        ;            }};

  5. Json传递后台数据的问题

    在后台我有两个类: public Class Person { private String name; private Address address;//一个自定义的类 //getter和sett ...

  6. 【Linux】鸟哥的Linux私房菜基础学习篇整理(八)

    1. useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM]\   [-c 说明栏] [-d 主文件夹绝对路径] [-r] [-s shell] 用户账号名:新增用户 ...

  7. poj1980

    首先想到费用流,但m<=100000还是算了吧那就感觉要用dp了,首先将a,b排序贪心一下可知,a,b的配对肯定不可能出现交叉这样就可以dp了,复杂度O(nm)还是过不去在贪心一下会发现,对于a ...

  8. Binary Tree Zigzag Level Order Traversal——LeetCode

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  9. Listview加载更多是,恢复到原来的位置,如果不加特殊处理,总是跳转第一条

    1.记录listView滚动到的位置的坐标,然后利用listView.scrollTo精确的进行恢复 listView.setOnScrollListener(new OnScrollListener ...

  10. SPBF(队列优化的Bellman-Foord)