简而言之就是说,我现在要用.net写一个登陆页面,但用户名和密码都是别人在discuz里面注册的,尤其是密码,经过了PHP里MD5的双重加密
(Discuz BBS及SNS密码加密算法 
 Discuz SNS及BBS的密码采用非明文方式,加密算法如下(采用mysql函数方式描述):     md5(concat(md5(‘password’),salt))  其中salt为各用户在uc_members表中salt字段存放的随机串,实际上就是md5算法中的salt随机串,)
在这样严格的加密方法之下,如何用.net实现相同的效果来与之匹配??求高手解答……

解决方案 »

  1.   

    我是想把别人输入的密码通过.net以同样的方式加密再拿去和已经加密的字符串匹配
      

  2.   

     /// <summary>
        /// 用于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;
        }