您的位置:首页 > 运维架构 > 网站架构

你的网站安全吗?别忘记了给自己的密码加密

2012-04-28 16:04 295 查看
还记得前段时间CSDN账号密码泄露的事件吗,用户的密码没有经过任何的处理就直接保存到数据库了。这个看似不会有任何问题的操作,也被大多数程序员接受的做法,而就是因为这种做法,导致了账号被泄露。当然我自己也搞到了CSDN的数据,只是用于学习之用。

  而今天在公司看到同事写的一个项目,却刚刚有对密码进行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加密的过程已经结束了。当然方法不是我的,我只不过踩在前人的基础并取其精华。
  如果你有跟好的加密算法别忘记了和别人分享……因为分享也是一种快乐。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐