你的网站安全吗?别忘记了给自己的密码加密
2012-04-28 16:04
295 查看
还记得前段时间CSDN账号密码泄露的事件吗,用户的密码没有经过任何的处理就直接保存到数据库了。这个看似不会有任何问题的操作,也被大多数程序员接受的做法,而就是因为这种做法,导致了账号被泄露。当然我自己也搞到了CSDN的数据,只是用于学习之用。
而今天在公司看到同事写的一个项目,却刚刚有对密码进行md5加密,所有为了自己以后可以更好的学习,也为了博客园的朋友们一起成长,这里只是抱着一种分享的态度和大家一起成长。
好了废话不多说了,我们开始简单的MD5练习了。想学的跟着我的步伐吧……
首先我们要创建一个数据库表,这里我只是简单的创建了一个只有用户id,用户姓名,用户密码。当然你的话需要根据自己的需求添加字段。这里需要注意一点的是,我一开始把用户密码的长度设置为varchar(20)运行的时候报错了,最后改成了nvarchar(40)运行没有问题了。后来查看了一下加密后的密码的长度为32位的。这里只是提供参考。
数据库建好了,现在我们开始创建我们的项目了,开发的IDE是vs2008,做的是b/s。首先我们创建了一张MyStudyMD5的页面,然后拖两个textbox控件和一个button控件,为了简便这里的控件的设置为默认。然手双击页面上的button按钮,跳到c#的代码了,首先我们自己建一个MD5加密方法:
然后我们在button事件中写方法,并调用这个加密的MD5。代码如下:
好了,MD5加密的过程已经结束了。当然方法不是我的,我只不过踩在前人的基础并取其精华。
如果你有跟好的加密算法别忘记了和别人分享……因为分享也是一种快乐。
而今天在公司看到同事写的一个项目,却刚刚有对密码进行md5加密,所有为了自己以后可以更好的学习,也为了博客园的朋友们一起成长,这里只是抱着一种分享的态度和大家一起成长。
好了废话不多说了,我们开始简单的MD5练习了。想学的跟着我的步伐吧……
首先我们要创建一个数据库表,这里我只是简单的创建了一个只有用户id,用户姓名,用户密码。当然你的话需要根据自己的需求添加字段。这里需要注意一点的是,我一开始把用户密码的长度设置为varchar(20)运行的时候报错了,最后改成了nvarchar(40)运行没有问题了。后来查看了一下加密后的密码的长度为32位的。这里只是提供参考。
create table myAdmin( uid int identity(1,1) not null, uname varchar(20) not null, upassword nvarchar(40) not null, )
数据库建好了,现在我们开始创建我们的项目了,开发的IDE是vs2008,做的是b/s。首先我们创建了一张MyStudyMD5的页面,然后拖两个textbox控件和一个button控件,为了简便这里的控件的设置为默认。然手双击页面上的button按钮,跳到c#的代码了,首先我们自己建一个MD5加密方法:
protected string MD5(string str) { byte[] bytes = Encoding.ASCII.GetBytes(str); bytes = new MD5CryptoServiceProvider().ComputeHash(bytes); StringBuilder result = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { result.Append(bytes[i].ToString("x2")); } return result.ToString(); }
然后我们在button事件中写方法,并调用这个加密的MD5。代码如下:
protected void Button1_Click(object sender, EventArgs e) { string SqlStr = "INSERT INTO myAdmin(uname,upassword) values('"+TextBox1.Text.Trim()+"','"+MD5(TextBox2.Text.Trim())+"')"; if (operateData.execSql(SqlStr)) { ClientScript.RegisterClientScriptBlock(this.GetType(), "注册成功", "<script>alert('注册成功')</script>"); } //string SqlStr = "select upassword from myAdmin where uid=2"; //string password = operateData.getTier(SqlStr); //ClientScript.RegisterClientScriptBlock(this.GetType(),"11","<script>alert('"+password.Length+"')</script>"); }
好了,MD5加密的过程已经结束了。当然方法不是我的,我只不过踩在前人的基础并取其精华。
如果你有跟好的加密算法别忘记了和别人分享……因为分享也是一种快乐。
相关文章推荐
- 给自己不同网站的密码加密
- 密码发生器(在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了)
- 有趣的密码加密策略,你知道自己的密码如何在网站中存储的吗?
- 如何给自己各种帐号编一个安全又不会忘记的密码?
- 密码发生器 在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或
- ZendFramework2开发-网站用户的密码加密和身份鉴定
- 续谈登录相关数据的安全加密策略——密码泄露事件杂谈之二
- 续谈登录相关数据的安全加密策略——密码泄露事件杂谈之二
- 用户密码加密存储十问十答,一文说透密码安全存储
- 创业团队如何保护自己的网站安全?
- 如何辨别密码安全糟糕的网站 分类: 软件插件学习 2015-05-08 11:32 54人阅读 评论(0) 收藏
- [走火入魔失眠夜]浅谈管理软件信息安全,用户名、密码的加密解密【附C#配套加密解密源码】
- Nginx下配置自己的SSL加密网站
- 网站登录的加密传输安全
- 续谈登录相关数据的安全加密策略——密码泄露事件杂谈之二
- 在Linux环境下mysql的root密码忘记解决方法 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 2.修改MySQL的登录设置: # vi /etc/my.c
- [走火入魔失眠夜]浅谈管理软件信息安全,用户名、密码的加密解密【附C#配套加密解密源码】
- discuzx安装插件时忘记安全密码解决办法
- 直指要害 用技术确保网站密码安全
- Https加密认证保网站安全