简而言之就是说,我现在要用.net写一个登陆页面,但用户名和密码都是别人在discuz里面注册的,尤其是密码,经过了PHP里MD5的双重加密
(Discuz BBS及SNS密码加密算法
Discuz SNS及BBS的密码采用非明文方式,加密算法如下(采用mysql函数方式描述): md5(concat(md5(‘password’),salt)) 其中salt为各用户在uc_members表中salt字段存放的随机串,实际上就是md5算法中的salt随机串,)
在这样严格的加密方法之下,如何用.net实现相同的效果来与之匹配??求高手解答……
(Discuz BBS及SNS密码加密算法
Discuz SNS及BBS的密码采用非明文方式,加密算法如下(采用mysql函数方式描述): md5(concat(md5(‘password’),salt)) 其中salt为各用户在uc_members表中salt字段存放的随机串,实际上就是md5算法中的salt随机串,)
在这样严格的加密方法之下,如何用.net实现相同的效果来与之匹配??求高手解答……
/// 用于Discuz中的用户加密数据
/// </summary>
/// <returns></returns>
public string get_Pwd()
{
sixNum = returnSixNumber();
string md5str = FormsAuthentication.HashPasswordForStoringInConfigFile(this.Register_Password.Value.Trim(), "MD5");
md5str = md5str + sixNum;
string md = FormsAuthentication.HashPasswordForStoringInConfigFile(md5str.ToLower(), "MD5");
return md.ToLower();
} /// <summary>
/// 返回六位数的随机数
/// </summary>
/// <returns></returns>
public string returnSixNumber()
{
string number = "abcdefghijklmnopqrstuvwxyz0123456789";
string chooseNum = "";
for (int i = 0; i < 6; i++)
{
Random rd = new Random(unchecked((int)DateTime.Now.Ticks));
chooseNum+=number.Substring(rd.Next(1, 38),1);
}
return chooseNum;
}