asp.net密码加密后老出错,求解啊
这是一个按钮,验证textbox1与textbox2的账号密码,然后登陆。
但是我将textbox2的值进行Getmd5处理后报错,说var转换int失败,怎么回事啊?
直接string passWord = this.TextBox2.Text.Trim();不会报错。
public string GetMD5(string strPwd)
{
string pwd = "";
//实例化一个md5对象
MD5 md5 = MD5.Create();
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(strPwd));
//翻转生成的MD5码
s.Reverse();
//通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
//只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
for (int i = 3; i < s.Length - 1; i++)
{
//将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
//进一步对生成的MD5码做一些改造
pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
}
return pwd;
}
protected void Button1_Click(object sender, EventArgs e)
{
//实例化公共类对象
DB db = new DB();
string userName = this.TextBox1.Text.Trim();
string passWord = db.GetMD5(this.TextBox2.Text.Trim());//对密码进行加密处理md5处理后的密码
//经过测试可以成功登陆的
//string passWord = this.TextBox2.Text.Trim();
string num = this.TextBox3.Text.Trim();
//如果保存的验证码与输入的验证码相同
if (Session["ValidateNum"].ToString() == num.ToUpper())
{
//获取用户信息
SqlDataReader dr = db.reDr("select * from student where name='" + userName + "' and password='" + passWord + "'");
// SqlDataReader 前进到下一条记录。
//SqlDataReader 的默认位置在第一条记录前面。 因此,必须调用 Read 来开始访问任何数据。
//对于每个关联的 SqlConnection,一次只能打开一个 SqlDataReader,在第一个关闭之前,
//打开另一个的任何尝试都将失败。 类似地,在使用 SqlDataReader 时,关联的&