你的網站安全嗎?別忘記了給自己的密碼加密


      還記得前段時間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加密的過程已經結束了。當然方法不是我的,我只不過踩在前人的基礎並取其精華。
  如果你有跟好的加密算法別忘記了和別人分享……因為分享也是一種快樂。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM