登录MD5加盐处理
一:解决方案资源管理器截图:

二:operatorDAL.cs代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HRMSys.Model;
using System.Data.SqlClient;
using System.Data; namespace HRMSys.DAL
{
public class OperatorDAL
{
/// <summary>
/// 插入一个用户
/// </summary>
/// <param name="op"></param>
public void insertUser(Operator op)
{
sqlhelper.ExecuteNon(@"insert into T_Operator (Id,UserName,Password) values (newid(),@UserName,@Password)",
new SqlParameter ("@UserName",op.UserName),
new SqlParameter ("@Password",op.Password));
}
/// <summary>
/// 将表的形式转换为vs的形式,给对象
/// </summary>
/// <param name="row"></param>
/// <returns></returns>
private Operator ToOperator(DataRow row)
{
Operator op = new Operator();
op.Id = (Guid)row["Id"];//不加就可以检查用户名是否重复了
op.UserName = (string)row["UserName"];
op.Password = (string)row["Password"];
return op;
}
/// <summary>
///查询指定username的一条数据
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public Operator loginUser(string name)
{ DataTable table = sqlhelper.datatable("select * from T_Operator where UserName=@UserName",
new SqlParameter ("@UserName",name));
if (table.Rows.Count <= )
return null; else if (table.Rows.Count > )
throw new Exception("用户名重复");
else
{
DataRow row = table.Rows[]; return ToOperator(row);
}
}
}
}
三:commonhelper.cs代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography; namespace HYMSys.UI
{
class CommonHelper
{
/// <summary>
/// MD5加密算法,将添加的用户名和密码加密
/// </summary>
/// <param name="sDataIn"></param>
/// <returns></returns>
public static string GetMD5(string sDataIn)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bytValue, bytHash;
bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);
bytHash = md5.ComputeHash(bytValue);
md5.Clear();
string sTemp = "";
for (int i = ; i < bytHash.Length; i++)
{
sTemp += bytHash[i].ToString("X").PadLeft(, '');
}
return sTemp.ToLower();
}
}
}
四:hrmsys.cs代码,用于添加用户
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HRMSys.Model;
using HRMSys.DAL; namespace HYMSys.UI
{
public partial class HRMSys : Form
{
public HRMSys()
{
InitializeComponent();
}
/// <summary>
/// 添加一个用户
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 操作管理员ToolStripMenuItem_Click(object sender, EventArgs e)
{
//MD5将要添加的用户名和密码加密
Operator op = new Operator();
op.UserName = CommonHelper.GetMD5( "hmj"+"Love@.>1");
op.Password = CommonHelper.GetMD5("" + "Love@.>1"); OperatorDAL opDal = new OperatorDAL();
opDal.insertUser(op); }
}
}
五:login.cs代码,用于登录
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HRMSys.Model;
using HRMSys.DAL; namespace HYMSys.UI
{
public partial class login : Form
{
public login()
{
InitializeComponent();
}
/// <summary>
/// 登录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
OperatorDAL opDAL=new OperatorDAL();
//无法直接调用sqlhelper,通过operatorDAL的方法掉用sqlhelper
string name=CommonHelper.GetMD5(tb_name.Text + "Love@.>1");
string password=CommonHelper.GetMD5(tb_pwd.Text+ "Love@.>1");
Operator op = opDAL.loginUser(name);
if (op == null)
MessageBox.Show("用户名不存在");
else if (op.Password != password)
MessageBox.Show("用户名或密码错误");
else
{
HRMSys form = new HRMSys();
form.Show();
this.Hide(); } }
}
}
登录MD5加盐处理的更多相关文章
- 搜狐视频 登录 md5 加密破解
这是一个简单的md5加密,可以学习一下js加密的破解流程,当一个入门级的教程 第一步:请求抓包 password是32位的字母和数字组合,猜测可能是md5加密,我们md5在线工具上试一下 发现我们的猜 ...
- iOS - Sign up/in 注册/登录
1.Sign up/in 1.1 用户登录安全原则 不能在网络上传输用户隐私数据的明文. 不能在本地和服务器上存储用户隐私数据的明文. 1.2 用户登录流程 登录成功之后,应该跳转视图控制器到主页. ...
- ADO.NET复习总结(5)--工具类SqlHelper 实现登录
工具类SqlHelper 即:完成常用数据库操作的代码封装 一.基础知识1.每次进行操作时,不变的代码: (1)连接字符串:(2)往集合存值:(3)创建连接对象.命令对象:(4)打开连接:(5)执行命 ...
- discuz X2.0教程]教你快速了解Discuz!程序文件功能,修改文件从此不用再求人
x3.x数据字典 http://faq.comsenz.com/library/database/x3/x3_index.htm 先从根目录开始,根目录文件一般都是入口,即执行具体功能的代码一般不在这 ...
- 模块二 hashlib模块、configparser模块、logging模块
算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常 ...
- discuz各个目录与文件的作用说明
discuz下面有很多文件夹以及文件,你们都知道他们是做什么的么?肯定不知道了吧.但是我们有经常遇到这些文件,譬如在后台文件校验操作都遇到某些文件被修改,这时候也需要知道这些文件是有什么作用的.今天就 ...
- SQL注入之PHP+Mysql
PHP+Mysql(GET方法+数值型+有错误回显)的注入方法 目标系统:PHP+MYSQL(GET方法+数值型+有错误信息) 环境说明: 后台地址:http://ip/cms/admin/login ...
- python学习-Day22
目录 今日内容详细 hashlib加密模块 什么是加密 加密算法 加密的使用 基本使用 指定算法(md5) 将明文数据传递给算法对象 获取加密之后的密文数据 加密补充 加盐处理 动态加盐 加密应用场景 ...
- hashib加密模块、logging模块
hashib加密模块 # 加密模块 1.什么是加密 将明文的数据通过一些手段变成能密文数据 密文数据的表现形式一般都是一串没有规则的字符串 2.加密算法 加密算法有很多>>>(讲文明 ...
随机推荐
- [原创]ie6,7中td和img之间有间隙
情形描述 开发工具:VS2010: 浏览器版本:IE6以上,火狐,谷歌: 页面布局设计:Table+Img布局: 项目预览问题:火狐,谷歌,IE8以上未出现问题,IE6,IE7图片之间有间隙. 分析原 ...
- 优化有标量子查询的SQL
数据库环境:SQL SERVER 2008R2 今天在数据库中抓出一条比较耗费资源的SQL,只返回904条数据,居然跑了40多分钟.SQL及对应的数据量如下图: SELECT saft04.cur_y ...
- 利用反射把查询到的Table、Reader转换成List、Model
菜鸟一枚,入园已有两年三个月,这还是第一次写博客,请各位大神斧正. 这是我写的一个工具类,通常我们从数据库查询到一个 DataReader 或者是 一个 Table , 想要转换成 一个 lis ...
- ACM HDU 2674 N! Again(数论)
继续数论.. Problem Description WhereIsHeroFrom: Zty,what are you doing ? Zty: ...
- chrome输入框记住密码导致背景黄色的解决方案
在form头部增加以下内容 <input type="text" style="display:hidden;"> <input type=& ...
- 笔记一:Python的PyDev插件在eclipse上面安装(新的插件地址 location)
注:部分内容参考网上的,若有侵权,请作者联系我,马上进行删改 安装PyDev: 首先需要去Eclipse官网下载:http://www.eclipse.org/,Eclipse需要JDK支持,如果Ec ...
- 移动web页面使用微软雅黑字体的问题
很多前端工程师在开发手机页面的时候,发现视觉设计师们喜欢用微软雅黑作为中文字体进行设计,于是写页面的时候也定义 font-family 为微软雅黑,后来发到线上后,细心的产品经理发现页面的字体不是微软 ...
- thinkphp使用问题
下面总结一些,我在使用中遇到的问题,以后遇到了再补充 一.<a>标签的跳转问题 问题:我在控制器Home/Index/index里面使用了Public里面的index.html模板,ind ...
- Laravel之路——缓存使用
1.使用Redis类 use Illuminate\Support\Facades\Redis; //设置指定 key 的值(覆盖老的value) Redis::setex('key','value' ...
- 从UI Automation看Windows平台自动化测试原理
前言 楼主在2013年初研究Android自动化测试的时候,就分享了几篇文章 Android ViewTree and DecorView Android自动化追本溯源系列(1): 获取页面元素 An ...