MD5随机散列加密算法
项目中需要在登录验证用户名、密码的时候对密码进行加密处理,由于是比较商业化的软件,所以安全方面还是必须要考虑的。而使用MD5随机散列加密算法使得密码加密后不可逆,很大程度上提升了安全性。废话不多说,看例子。
MD5加密类
- <span style="font-size:18px;">using System;
- using System.Text;
- using System.Security.Cryptography;
- namespace encryptType
- {
- public class Encrypt
- {
- public string encrypt(string strPwd)
- {
- String str = "";
- // 初始化MD5对象
- MD5 md5 = new MD5CryptoServiceProvider();
- // 将字符编码为一个字节数组
- byte[] data = Encoding.Default.GetBytes(strPwd);
- // 计算data字节数组的哈希值
- byte[] md5Data = md5.ComputeHash(data);
- // 清空md5
- md5.Clear();
- // 遍历md5Data哈希数组
- for (int i = 0; i < md5Data.Length-1; i++)
- {
- str += md5Data[i].ToString("x").PadLeft(2, '0');
- }
- return str;
- }
- }
- }
- </span>
窗体代码
- <span style="font-size:18px;">// 定义变量
- String userName = "yh101";
- String passWord = "1234";
- //String userName = txtUserName.Text.Trim();
- //String passWord = txtPwd.Text.Trim();
- //String str1 = "";
- //String str2 = "";
- // 实例化加密类
- Encrypt encrypt = new Encrypt();
- // 加密密码
- String strPwd = encrypt.encrypt(passWord);
- // 验证用户名
- if (userName != txtUserName.Text.Trim())
- {
- MessageBox.Show("用户名不存在,请重新输入!");
- txtUserName.Clear();
- txtUserName.Focus();
- return;
- }
- // 将输入的密码进行加密
- String strMima = encrypt.encrypt(txtPwd.Text.Trim());
- // 验证密码
- if (strMima != strPwd)
- {
- MessageBox.Show("密码不正确,登录失败!");
- txtPwd.Clear();
- txtPwd.Focus();
- return;
- }
- MessageBox.Show("密码正确,登录成功!" + "输入密码:" + strMima + "原密码:" + strPwd);</span>
原文出处:http://blog.csdn.net/happylee6688/article/details/8504067 紫羽风的博客
MD5随机散列加密算法的更多相关文章
- Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01
这个小项目包含了注册与登录,使用了springboot+mybatis+shiro的技术栈:当用户在浏览器登录时发起请求时,首先这一系列的请求会被拦截器进行拦截(ShiroFilter),然后拦截器根 ...
- 加密算法和MD5等散列算法的区别(转)
本文转自http://www.cnblogs.com/eternalwt/archive/2013/03/21/2973807.html 感谢作者 1.在软件开发的用户注册功能中常出现MD5加密这个概 ...
- Shiro+springboot+mybatis+EhCache(md5+salt+散列)认证与授权-03
从上文:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02 当每次进行刷新时,都会从数据库重新查询数据进行授权操作,这样无疑给数据库造成很大的压力,所以需要引入 ...
- Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02
代码延续地址:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01 1.创建t_role角色表(比如管理员admin,普通用户user等),创建t_pers权限表 ...
- HBase Rowkey的散列与预分区设计
转自:http://www.cnblogs.com/bdifn/p/3801737.html 问题导读:1.如何防止热点?2.如何预分区?扩展:为什么会产生热点存储? HBase中,表会被划分为1.. ...
- rowkey散列和预分区设计解决hbase热点问题(数据倾斜)
Hbase的表会被划分为1....n个Region,被托管在RegionServer中.Region二个重要的属性:Startkey与EndKey表示这个Region维护的rowkey的范围,当我们要 ...
- 简要介绍DES、RSA MD5 sha1 四种加密算法的优缺点,以及使用场合
美国数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立.密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合.RSA是非对称算法,加密密钥和解密密钥是不 ...
- HBase 热点问题——rowkey散列和预分区设计
热点发生在大量的client直接访问集群的一个或极少数个节点(访问可能是读,写或者其他操作).大量访问会使热点region所在的单个机器超出自身承受能力,引起性能下降甚至region不可用,这也会影响 ...
- Windows系统散列值获取分析与防范
LM Hash && NTLM Hash Windows操作系统通常使用两种方法对用户的明文进行加密处理,在域环境中,用户信息存储在ntds.dit中,加密后为散列值.Windows操 ...
随机推荐
- CentOS下重新安装yum
1,下载最新的yum-3.2.28.tar.gz并解压 #wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz#tar xvf yum- ...
- poj2390
#include <stdio.h> #include <stdlib.h> int main() { int r,m,y,i; scanf("%d %d %d&qu ...
- poj2328---"right on"进入下一个case的模板(while)
#include <stdio.h> #include <stdlib.h> #include<string.h> int main() { ]; ,end=; w ...
- hdu--1800--字典树&&其他
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1800 根据题意可知:意思是有若干个飞行员,需要在扫帚上练习飞行,每个飞行员具有不同的等级,且等级高的飞 ...
- mongoose的populate的使用方法;
LotteryReceiveRecord.find({"lottery":req.params.id}).populate("user lottery").ex ...
- iOS 退出应用程序
退出应用程序,方法很简单,只是动画效果没有那么好. - (void)exitApplication { AppDelegate *app = [UIApplication sharedApplicat ...
- POJ 3692 Kindergarten (二分图 最大团)
Kindergarten Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5660 Accepted: 2756 Desc ...
- JavaScript之面向对象的概念,对象属性和对象属性的特性简介
一.大家都知道,面向对象语言有一个标志,那就是他们都有类的概念,通过类我们可以创建任意多个具有相同属性和方法的对象.但ECMAScript(指定JavaScript标准的机构,也就是说JavaScri ...
- 根据输出设置select的被选中值
$("#startupStatus").find("option").map(function(i) { if ($('#st-status').val() = ...
- VS2013无法链接到TFS (转)
VS2013无法链接到TFS(Visual studio online),错误TF31001,TF31002 TF31002: Unable to connect to VisualStudio ...