就是在登录时后加密数据密码到数据库表中

解决方案 »

  1.   

            /// <summary>
            /// MD5函数
            /// </summary>
            /// <param name="str">原始字符串</param>
            /// <returns>MD5结果</returns>
            public static string MD5(string str)
            {
                byte[] b = Encoding.Default.GetBytes(str);
                b = new MD5CryptoServiceProvider().ComputeHash(b);
                string ret = "";
                for (int i = 0; i < b.Length; i++)
                    ret += b[i].ToString("x").PadLeft(2, '0');
                return ret;
            }
      

  2.   

    FormsAuthentication.HashPasswordForStoringInConfigFile(pToEncrypt,"MD5");
      

  3.   


    public class Encrypt_Decrypt
    {
    //对密码进行MD5加密的函数(添加盐值:&%#@?,:*)
    public string getEncryPassword(string Password)
    {
    string EncryedPassword=FormsAuthentication.HashPasswordForStoringInConfigFile(
    Password+"&%#@?,:*", "md5"); // Or "sha1" 
    return EncryedPassword;
    }
    // 加密
    public string EncryptText(String strText)
    {
    return Encrypt(strText, "&%#@?,:*");
               // return Encrypt(strText,DateTime.Now.ToString() );
    } //'解密
    public String DecryptText(String strText)
    {
    return Decrypt(strText, "&%#@?,:*");
               // return Decrypt(strText,DateTime.Now.ToString());
    }
    //'加密函数
    private String Encrypt(String strText, String strEncrKey)
    {
    Byte[] byKey = {};
    Byte[] IV = { 0x01, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
    try
    {
    byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8));
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    Byte[] inputByteArray  = Encoding.UTF8.GetBytes(strText);
    MemoryStream ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    return Convert.ToBase64String(ms.ToArray());
    }
    catch(Exception ex)
    {
    return ex.Message;
    }
    } //'解密函数
    private String Decrypt(String strText, String sDecrKey)
    {

    char[] stBase=strText.ToCharArray();
    for (int i = 0; i < stBase.Length; i++)
    {
    if (stBase[i] ==' ')
    {
    stBase[i] = '+';
    }
    }
    strText = "";
    for (int i = 0; i < stBase.Length; i++)
    {
    strText += stBase[i];
    }
    Byte[] byKey  = {};
    Byte[] IV = { 0x01,0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
    Byte[] inputByteArray = new byte[strText.Length];
    try
    {
    byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0, 8));
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();

    inputByteArray = Convert.FromBase64String(strText);

    MemoryStream  ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    System.Text.Encoding encoding = System.Text.Encoding.UTF8;
    return encoding.GetString(ms.ToArray());
    }
    catch(Exception ex)
    {
    return ex.Message;
    }
    }
    }
    这个是加密和解密类.
    把密码加密存储到数据库中.
    EncryptText(密码)
    解密
    DecryptText(字符串)
      

  4.   

    sqlserver自带加密函数
    select  pwdencrypt('jinjazz')
    select pwdcompare('jinjazz', convert(varbinary(255), pwdencrypt('jinjazz')), 0)
    select pwdcompare('jinjazz1',convert(varbinary(255), pwdencrypt('jinjazz')), 0)
      

  5.   

    /// <summary>
            /// MD5加密函数
            /// </summary>
            /// <param name="str_text">原始字符串</param>
            /// <returns>MD5结果</returns>
            public static string UserMD5(string str_text)
            {
                MD5 md5 = new MD5CryptoServiceProvider();
                System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tbpwd.Text.Trim(), "md5"); 出错在这里             byte[] srctext = Encoding.Unicode.GetBytes(str_text);
                byte[] tartext = md5.ComputeHash(srctext);
                string str = "";
                for (int i = 0; i < tartext.Length; i++)
                {
                    str += tartext[i].ToString("x").PadLeft(2,'0');
                }
                return str;
            }
    这样对么
    但是还是怎么加密不了呢。。
      

  6.   


        MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider(); 
        byte[] hashedBytes = null; 
        UTF8Encoding encoder = new UTF8Encoding(); 
        hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(txtPwd.Text)); 
     
      

  7.   

     
    using System.Security.Cryptography;
    public static string encryptPassword(string xPwd)
            {
                byte[] data = new byte[xPwd.Length];
                int i = 0;
                foreach (char c in xPwd.ToCharArray())
                {
                    data[i] = Convert.ToByte(c);
                    i++;
                }            MD5 md5 = new MD5CryptoServiceProvider();            byte[] result = md5.ComputeHash(data);
                return Convert.ToBase64String(result);
            }  要添加引用
      

  8.   

    xuexi   自己做程序时用过不过自己 还没有真正明白 学习!!!!!!
      

  9.   

    private  string ConvertPassword(string strPassword)  //パスワードの加密 {
    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
    string strConvert = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(strPassword)),0);
    strConvert = strConvert.Replace("-","");
    return strConvert;
    }
      

  10.   

    using System.Security.Cryptography; 
    using System.Text;byte[] upwd = (new ASCIIEncoding()).GetBytes(TextBoxPWD.Text); 
        byte[] mdpwdByte = md5.ComputeHash(upwd); 
        string mdpwdString = (new ASCIIEncoding()).GetString(mdpwdByte);mdpwdString 就是加密后数据,你添加用户,和验证都用到这个
    原理就是:根据你输入的东西,再加密一次,然后跟数据库的那个对比 。全过程没有解密的
    这个方法简单好用,我试过了,OK
      

  11.   

    using System.Web.Security;
    //pass就是人要加密的密码
    pass = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "MD5");
      

  12.   

    /// <summary> 
            /// MD5加密函数 
            /// </summary> 
            /// <param name="str_text">原始字符串 </param> 
            /// <returns>MD5结果 </returns> 
            public static string UserMD5(string str_text) 
            { 
                MD5 md5 = new MD5CryptoServiceProvider(); 
                System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tbpwd.Text.Trim(), "md5"); 出错在这里             byte[] srctext = Encoding.Unicode.GetBytes(str_text); 
                byte[] tartext = md5.ComputeHash(srctext); 
                string str = ""; 
                for (int i = 0; i < tartext.Length; i++) 
                { 
                    str += tartext[i].ToString("x").PadLeft(2,'0'); 
               }
                return str; }到地放到哪里才能起到加密的作用
      

  13.   

    FormsAuthentication.HashPasswordForStoringInConfigFile(pToEncrypt,"MD5");说什么不存在
    我晕
    和我这个
     System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tbpwd.Text.Trim(), "md5"); 出错在这里 也没啥区别呀
    请详细指点下了
      

  14.   


    一下一个产生一个随机的一个盐值:
       private string CreateSalt()
        {
            byte[] bytSalt = new byte[8];
            RNGCryptoServiceProvider rng;        rng = new RNGCryptoServiceProvider();        rng.GetBytes(bytSalt);        return Convert.ToBase64String(bytSalt);
        }
    比如在存用户的密码时,密码用MD5加盐值,那下次用户登录时,密码不是匹配不上了,因为盐值时随机数啊,这可怎么办,求指点。。!!!!!