MD5的简介:MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

  MD5算法具有以下特点:
  1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
  2、容易计算:从原数据计算出MD5值很容易。
  3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
  4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

  注:MD5常用于密码加密。

实战应用:wpf项目中要使用MD5来加密敏感数据保存入库,但是又要可以实现记住密码,MD5是不可逆的无法进行解密,而记住密码保存到本地文件的也是密文,记住密码后再次登录就要先解密一遍赋值给当前界面的密码框,然后点击登录再进行加密与数据库中的作对比,这样就不能使用MD5去进行记住密码了。这里就要使用DES来记住密码保存本地,登录的时候,获取记住的信息DES解密,点击登录再MD5加密即可。

实现过程

获取界面登录信息

                //获取登录信息
loginRecord.Name = tbName.Text.Trim();
loginRecord.MD5Pwd = TrialHelper.GetMD5(tbPwd.Password); //保存到数据库MD5方式
loginRecord.Pwd = TrialHelper.EncryptDES(tbPwd.Password);//记住密码des方式,保存到本地
loginRecord.IsSavePwd = (bool)cbSaveName.IsChecked;
loginRecord.IsAutoLogin = (bool)cbAutoLogin.IsChecked;

实现登录

//用MD5加密的去登录
LoginService.LoginInfo lgInfo=LoginService.LoginService.GetLoginUserInfo(loginRecord.Name, loginRecord.MD5Pwd);

登录成功后记住密码保存账户信息到本地文件

//登录成功后保存配置文件
XmlHelper.XmlSerializeToFile(loginRecord, "LoginInfo.ini");

记住密码登录方式和自动登录方式,再从配置文件读取账户信息赋值到界面,最后点击登录逻辑还是一样,经MD5加密去登录与数据库中的密文进行对比。

             //获取登录配置信息并赋值到界面,LoginInfo记录的密码是加密的
loginRecord = XmlHelper.XmlDeserializeFromFile<LoginRecord>("LoginInfo.ini");
if (loginRecord != null)
{
tbName.Text = loginRecord.Name;//用户名输入框赋值
tbPwd.Password = TrialHelper.DecryptDES(loginRecord.Pwd);//密码输入框赋值,Des解密后的值
cbAutoLogin.IsChecked = loginRecord.IsAutoLogin;//自动登录选框
cbSaveName.IsChecked = loginRecord.IsSavePwd; //记住密码选框
if (loginRecord.IsAutoLogin)//自动登录
{
btnLogin_Click(null, null);
}
}

数据加密实战之记住密码、自动登录和加密保存数据运用DES和MD5混合使用的更多相关文章

  1. php 记住密码自动登录

    当我们登录网站管理后台的时候,会有提示说记住登录状态,记住我等这样的提示,这个选项有什么用呢?如果选中了记登录状态后,下次在浏览这个网站后 台时就不用在填写用户名和密码了,在去登录了.下面写了一小代码 ...

  2. Android记住密码自动登录的实现

    我采用的是SharedPreferences来存取数据的,所以先简单的介绍一下SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,主要是保存 ...

  3. php实现记住密码自动登录的功能

    $username=trim($_POST['username']); $password=md5(trim($_POST['password'])); $ref_url=$_GET['req_url ...

  4. (转)asp.net 使用cookie完成记住密码自动登录

     代码如下 复制代码 string username = this.txtUserName.Text;//用户名        string password = this.txtPassword.T ...

  5. Win7下怎么设置让远程桌面连接记住密码下次登录不需再输入

    远程桌面连接功能想必大家都不会陌生吧,特别是使用VPS服务器的用户们经常会用到,为了服务器的安全每次都会把密码设置的很复制,但是这样也有一个麻烦,就是每次要桌面远程连接的时候都要输入这么复杂的密码,很 ...

  6. Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作

    首先声明:该文虽以Ubuntu 13.04为例,同样适用于Fedora 17(已测试),但在较低版本的Ubuntu下可能有所差异,具体看后面的注意事项. 技巧目录: 解决Ubuntu下每隔几分钟自动锁 ...

  7. linux ssh 不用密码自动登录的几种方法

    1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运 ...

  8. PuTTY免输密码自动登录Linux

    1.使用PuTTY安装目录里的puttygen.exe工具.先点“生成(Generate)”,然后随意移动鼠标直到进度条填满,即可生成密钥 公钥部分:把上边那一段文字全选->复制备用.(不要点击 ...

  9. 运用cookie实现记住密码自动登陆:

    苦命的程序员:只有博客才能了解我的路!!! 废话不多说:直接上代码: 1.首先在现在登录的页面上来获取cookie的所有: 2.在验证页面来设置clookie的用户名和密码还有是否是自动登录: 到此就 ...

随机推荐

  1. es5中foreach的用法

    HTML代码: <p id="result"></p> JS代码: var eleResult = document.getElementById(&quo ...

  2. 在centos阿里云服务器上安装配置php运行环境 安装php7

    http://blog.csdn.net/kesixin/article/details/72882469 单独安装php7 http://blog.csdn.net/tang05709/articl ...

  3. java代码输出质因数

    package com.badu; import java.util.Scanner; //分解质因数问题: //从键盘输一个数, //首先最小质因数为2 //n不能被2整除时, //n能被2整除时, ...

  4. 第十四届华中科技大学程序设计竞赛决赛同步赛 F Beautiful Land(01背包,背包体积超大时)

    链接:https://www.nowcoder.com/acm/contest/119/F来源:牛客网 Beautiful Land 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1 ...

  5. 数据库:sql 多表联合更新【转】

    SQL Update多表联合更新的方法 (1) sqlite 多表更新方法 update t1 set col1=t2.col1 from table1 t1 inner join table2 t2 ...

  6. IDA Pro权威指南学习笔记(一)

    一直不懂逆向,最近刚好不忙,于是学习逆向,用来做笔记,顺便和大家分享交流. 参考书籍<IAD PRO权威指南> 工具: PETools: ETools 是另一款很好的PE文件编辑工具,以前 ...

  7. js笔试题一套(未完待续)

    1.下面程序的运行结果是: function test(x, y, z) { alert(test.length); alert(arguments.length); alert(arguments. ...

  8. oracle——基础知识(二)未完

    1.select 查询 单独的一条 select 语句 可以一次查询多条记录:但是在 pl/sql 块中,select语句只能 使用INTO子句:必须并且只能返回一行 2.EXECUTE IMMEDI ...

  9. apache 禁delete

    <VirtualHost *:80>ServerAdmin sunqz@jerei.comDocumentRoot /web/dasdf ServerName www.abc.com &l ...

  10. LAMP 2.3 Apache配置防盗链

    如果你的站点是一个图片站,有很多非常漂亮的美女图片,那我相信,时间久了会有很多人来你网站借图片,有的人直接下载走了,还有的人直接取走图片的地址,比如你的网站域名是 www.123.com,图片地址为 ...