项目中需要在登录验证用户名、密码的时候对密码进行加密处理,由于是比较商业化的软件,所以安全方面还是必须要考虑的。而使用MD5随机散列加密算法使得密码加密后不可逆,很大程度上提升了安全性。废话不多说,看例子。

MD5加密类

  1. <span style="font-size:18px;">using System;
  2. using System.Text;
  3. using System.Security.Cryptography;
  4. namespace encryptType
  5. {
  6. public class Encrypt
  7. {
  8. public string encrypt(string strPwd)
  9. {
  10. String str = "";
  11. // 初始化MD5对象
  12. MD5 md5 = new MD5CryptoServiceProvider();
  13. // 将字符编码为一个字节数组
  14. byte[] data = Encoding.Default.GetBytes(strPwd);
  15. // 计算data字节数组的哈希值
  16. byte[] md5Data = md5.ComputeHash(data);
  17. // 清空md5
  18. md5.Clear();
  19. // 遍历md5Data哈希数组
  20. for (int i = 0; i < md5Data.Length-1; i++)
  21. {
  22. str += md5Data[i].ToString("x").PadLeft(2, '0');
  23. }
  24. return str;
  25. }
  26. }
  27. }
  28. </span>

窗体代码

  1. <span style="font-size:18px;">// 定义变量
  2. String userName = "yh101";
  3. String passWord = "1234";
  4. //String userName = txtUserName.Text.Trim();
  5. //String passWord = txtPwd.Text.Trim();
  6. //String str1 = "";
  7. //String str2 = "";
  8. // 实例化加密类
  9. Encrypt encrypt = new Encrypt();
  10. // 加密密码
  11. String strPwd = encrypt.encrypt(passWord);
  12. // 验证用户名
  13. if (userName != txtUserName.Text.Trim())
  14. {
  15. MessageBox.Show("用户名不存在,请重新输入!");
  16. txtUserName.Clear();
  17. txtUserName.Focus();
  18. return;
  19. }
  20. // 将输入的密码进行加密
  21. String strMima = encrypt.encrypt(txtPwd.Text.Trim());
  22. // 验证密码
  23. if (strMima != strPwd)
  24. {
  25. MessageBox.Show("密码不正确,登录失败!");
  26. txtPwd.Clear();
  27. txtPwd.Focus();
  28. return;
  29. }
  30. MessageBox.Show("密码正确,登录成功!" + "输入密码:" + strMima + "原密码:" + strPwd);</span>

原文出处:http://blog.csdn.net/happylee6688/article/details/8504067  紫羽风的博客

MD5随机散列加密算法的更多相关文章

  1. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01

    这个小项目包含了注册与登录,使用了springboot+mybatis+shiro的技术栈:当用户在浏览器登录时发起请求时,首先这一系列的请求会被拦截器进行拦截(ShiroFilter),然后拦截器根 ...

  2. 加密算法和MD5等散列算法的区别(转)

    本文转自http://www.cnblogs.com/eternalwt/archive/2013/03/21/2973807.html 感谢作者 1.在软件开发的用户注册功能中常出现MD5加密这个概 ...

  3. Shiro+springboot+mybatis+EhCache(md5+salt+散列)认证与授权-03

    从上文:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02 当每次进行刷新时,都会从数据库重新查询数据进行授权操作,这样无疑给数据库造成很大的压力,所以需要引入 ...

  4. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02

    代码延续地址:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01 1.创建t_role角色表(比如管理员admin,普通用户user等),创建t_pers权限表 ...

  5. HBase Rowkey的散列与预分区设计

    转自:http://www.cnblogs.com/bdifn/p/3801737.html 问题导读:1.如何防止热点?2.如何预分区?扩展:为什么会产生热点存储? HBase中,表会被划分为1.. ...

  6. rowkey散列和预分区设计解决hbase热点问题(数据倾斜)

    Hbase的表会被划分为1....n个Region,被托管在RegionServer中.Region二个重要的属性:Startkey与EndKey表示这个Region维护的rowkey的范围,当我们要 ...

  7. 简要介绍DES、RSA MD5 sha1 四种加密算法的优缺点,以及使用场合

    美国数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立.密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合.RSA是非对称算法,加密密钥和解密密钥是不 ...

  8. HBase 热点问题——rowkey散列和预分区设计

    热点发生在大量的client直接访问集群的一个或极少数个节点(访问可能是读,写或者其他操作).大量访问会使热点region所在的单个机器超出自身承受能力,引起性能下降甚至region不可用,这也会影响 ...

  9. Windows系统散列值获取分析与防范

    LM Hash && NTLM Hash Windows操作系统通常使用两种方法对用户的明文进行加密处理,在域环境中,用户信息存储在ntds.dit中,加密后为散列值.Windows操 ...

随机推荐

  1. JAVA之Exchanger

    如果两个线程在运行过程中需要交换彼此的信息,比如一个数据或者使用的空间,就需要用到Exchanger这个类,Exchanger为线程交换信息提供了非常方便的途径,它可以作为两个线程交换对象的同步点,只 ...

  2. 供应类型与计划分类一致性检查(PO)

    应用 Oracle   Purchasing 层 Level Function 函数名 Funcgtion Name CUXPOIMM 表单名 Form Name CUXPOIMM 说明 Descri ...

  3. IC卡存储器介绍

    自从80年代中期出现IC电话卡后,基本已取代了原来流行的电话磁卡,磁卡存在存在严重的安全问题,已逐步淘汰.即使IC电话卡,也不能算很安全,卡内所有数据只要有简单的读写装置并按时序操作都能读取,事实上电 ...

  4. 使用MIDAS访问远程Access数据库

    使用MIDAS访问远程Access数据库         Allen Tao(http://blog.csdn.net/allentao/) 2005-5-3 本文源码下载 访问远程数据库常用的办法是 ...

  5. POJ 2686 Traveling by Stagecoach 壮压DP

    大意是有一个人从某个城市要到另一个城市(点数<=30) 然后有n个马车票,相邻的两个城市走的话要消耗掉一个马车票. 花费的时间呢,是马车票上有个速率值,用边/速率就是花的时间. 问最后这个人花费 ...

  6. cdoj 邱老师看电影

    //第一次写概率dp //写成记忆化搜索的形式比递推要更方便易懂 //不过好像还是可以写成递推的形式的 但是比较那个…… #include<cstdio> #include<iost ...

  7. [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(八)

    目的: 1. 通过网页读取watchdog的信息 2. 通过网页设置watchdog 准备工作: 1. 选择一个web框架,选用 cherrypy $ sudo apt-get install pyt ...

  8. powerdesigner for sqlserver的一些实用配置

    在实用powerdesigner生成sqlserver 数据表时常常遇到一些问题: 1.数据中定义的字段名称相同生成物理模型时会报错. 2.数据各表之间的主键不能定义一样的名称. 我现在的需求是将数据 ...

  9. android 回调

    调函数(callback Function),顾名思义,用于回调的函数.  回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数.回调函数是一个工作流的一部分,由工作流来决定函数的调用 ...

  10. SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

    SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled 今天是2013-09-17,在今天学习sql ...