zoukankan      html  css  js  c++  java
  • 你的网站安全吗?别忘记了给自己的密码加密

          还记得前段时间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加密的过程已经结束了。当然方法不是我的,我只不过踩在前人的基础并取其精华。
      如果你有跟好的加密算法别忘记了和别人分享……因为分享也是一种快乐。

  • 相关阅读:
    任意用户密码重置的10种姿势
    提取header头进行模块化处理
    web安全测试--XSS(跨站脚本)与CSRF
    web测试--登录界面怎么测?
    Burp Suite抓https数据包
    CTFHub_技能树_远程代码执行
    CTFHub_技能树_SQL注入Ⅱ
    XSS 跨站脚本
    C语言中的内存对齐问题
    CTFHub_技能树_SQL注入Ⅰ
  • 原文地址:https://www.cnblogs.com/Jimmy009/p/2475305.html
Copyright © 2011-2022 走看看