可逆加密怎样运用?
各位大虾,我要让用户可以找回密码,并且要给他密码加密,可是怎样使用可逆的加密?  
------解决方案--------------------找回密码功能都是重新设置一个新的密码给用户的。要是密码可以解密,那就没有再加密的必要了
------解决方案--------------------一般的找回密码都是通过一定的条件让你能够重新设置密码吧。。。为什么要可逆呢?
------解决方案--------------------你自己规定一种算法好了,比如取密码,然后对每个字符串值+1,类似的.
------解决方案--------------------这里有一个可逆加密的算法:
http://www.cnblogs.com/JBoy/archive/2007/06/17/786799.html
------解决方案--------------------逆转密码很不安全啊,一般都重置密码. 如果密码可逆的话,还不如不加密,直接插入到数据表中的. 楼主还可以把密码给select出来.
------解决方案--------------------/// <summary>
       /// 3DES加密
       /// </summary>
       /// <param name="Value">待加密字符串</param>
       /// <param name="sKey">密钥</param>
       /// <param name="sIV">矢量</param>
       /// <returns>加密后字符串</returns>
       private static string encryptString(string Value, string sKey, string sIV)
       {
           //构造对称算法
           SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
           ICryptoTransform ct;
           MemoryStream ms;
           CryptoStream cs;
           byte[] byt;
           mCSP.Key = Convert.FromBase64String(sKey);
           mCSP.IV = Convert.FromBase64String(sIV);
           //指定加密的运算模式
           mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
           //获取或设置加密算法的填充模式
           mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
           ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
           byt = Encoding.UTF8.GetBytes(Value);
           ms = new MemoryStream();
           cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
           cs.Write(byt, 0, byt.Length);
           cs.FlushFinalBlock();
           cs.Close();
           return Convert.ToBase64String(ms.ToArray());
       }
       /// <summary>
       /// 3DES解密
       /// </summary>
       /// <param name="Value">待解密字符串</param>
       /// <param name="sKey">密钥</param>
       /// <param name="sIV">矢量</param>
       /// <returns>解密后字符串</returns>
       private static string decryptString(string Value, string sKey, string sIV)
       {
           //构造对称算法
           SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
           ICryptoTransform ct;
           MemoryStream ms;
           CryptoStream cs;
           byte[] byt;
           mCSP.Key = Convert.FromBase64String(sKey);
           mCSP.IV = Convert.FromBase64String(sIV);
           mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
           mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
           ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
           byt = Convert.FromBase64String(Value);
           ms = new MemoryStream();
           cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
           cs.Write(byt, 0, byt.Length);
           cs.FlushFinalBlock();
           cs.Close();
           return Encoding.UTF8.GetString(ms.ToArray());
       }
------解决方案--------------------可以逆加密
但是密码不建议这样做
密码加密还是不可逆为好,比如MD5
----------天天说,天天都快乐----------
------解决方案--------------------