MD5密码加密问题
在用户注册的时候,在后台取得密码的值并将其转换成md5,然后就保存到数据库。
当用户登录需要进行密码比对的时候,两次生的md5密码不一样,这是为什么,md5
的工作原理是什么??
我的做法,(登录界面)对输入的密码进行md5转换,在以参数的形式传到数据库进行
核对!!注册和登陆输入的密码一样,但转成md5以后就不一样了??
请问我该如何处理这个问题??
望大家指点一二!!感谢!
问题点数:20、回复次数:5Top
1 楼china2001ok(开心拽拽)回复于 2005-03-08 15:21:56 得分 5
先给每个注册用户一个MD5 密码(用户注册页面中输入的密码 然后用MD5加密 存入数据库表) 然后等用户输入 自己密码时 再用MD5加密 来和数据库中的密码对比Top
2 楼wenquan_nn(求学者)回复于 2005-03-08 15:34:13 得分 0
感谢你的回复!
做法一样,但两次加密的密码都是不一样的?
我是使用这个方法加密的:
string password = FormsAuthentication.HashPasswordForStoringInConfigFile(passwordTxt.Text,"MD5");Top
3 楼china2001ok(开心拽拽)回复于 2005-03-08 15:44:49 得分 1
是这样的啊 有什么问题 两次出来的不一样??Top
4 楼houlinghouling(秋水伊)回复于 2005-03-08 15:56:20 得分 13
自己写一个加密的方法好了.给你一个
/// <summary>
/// 加密方法
/// </summary>
/// <param name="Source">待加密的串</param>
/// <returns>经过加密的串</returns>
public string Encrypto(string Source)
{
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
/// <summary>
/// 解密方法
/// </summary>
/// <param name="Source">待解密的串</param>
/// <returns>经过解密的串</returns>
public string Decrypto(string Source)
{
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}Top
5 楼posemanboy(奇货可居)回复于 2005-03-08 16:00:04 得分 1
支持一下Top




