关于MD5加密的一个实例
我们在开发网站的会员管理系统时,如果没有考虑把会员注册时的密码加密后写入数据库,那么此时的密码将以明文的形式进行传输,这样的后果就是密码容易泄漏;
同理如果会员注册后用自己的用户名和密码登录时,没有采取加密措施也容易泄漏密码。这时候据需要开发人员在开发的时候考虑把用户注册时密码这一块进行加密,
然后把加密后的字符串写入数据库,当用户登录的时候,在把密码这一块进行加密然后把得到的字符串与数据库里的字符串进行比较,如果正确则通过验证否则验证失败。
现在我用MD5加密写一个小例子,供初学者参考(本实例用的开发工具是微软的VS2005,数据库是Access),源代码如下:
//default.aspx为用户登录页面,因为default.aspx里没有东西,现只把default.aspx.cs代码贴出来
//default.aspx.cs源代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//因为这里使用的是Access数据库,所以在这里添加引用命名空间
using System.Data.OleDb;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
txtUname.Focus();//获取焦点
}
protected void Button1_Click(object sender, EventArgs e)
{
string strName = txtUname.Text;
string strPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(txtUpwd.Text, "MD5");//此处就是加密的地方,很这么简单的就一句话就可以
OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["web"].ConnectionString);
OleDbDataAdapter dap = new OleDbDataAdapter("select*from admin where userName='" + strName + "'and userPassword='" + strPwd + "'", con);
DataSet ds = new DataSet();
dap.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
Response.Write("<script>alert('登录成功!')</script>");
}
else
{
Response.Write("<script>alert('用户名或密码错误!')</script>");
}
}
protected void Button2_Click(object sender, EventArgs e)
{
txtUname.Text = "";//清空
txtUpwd.Text = "";//清空
}
}
至于加密方面的也很简单,在这里就不举例了。