2011-08-02 121 views
0

用於加密字符串以創建唯一的指紋,如8FAC-5806-FF54-4174-F89E-43DE-97A6-5648。創建獨特的加密

如何將它從8FAC-5806-FF54-4174-F89E-43DE-97A6-5648轉換回字符串?

MD5是單一加密,所以必須使用tripleDES將其恢復。但如何使用以下方法創建這樣8FAC-5806-FF54-4174-F89E-43DE-97A6-5648的字符串:

public static string Encrypt(string strToEncrypt, string strKey) 
    { 
     try 
     { 
      TripleDESCryptoServiceProvider objDESCrypto = new TripleDESCryptoServiceProvider(); 
      MD5CryptoServiceProvider objHashMD5 = new MD5CryptoServiceProvider(); 

      byte[] byteHash, byteBuff; 
      string strTempKey = strKey; 

      byteHash = objHashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(strTempKey)); 
      objHashMD5 = null; 
      objDESCrypto.Key = byteHash; 
      objDESCrypto.Mode = CipherMode.ECB; //CBC, CFB 

      byteBuff = ASCIIEncoding.ASCII.GetBytes(strToEncrypt); 
      return Convert.ToBase64String(objDESCrypto.CreateEncryptor().TransformFinalBlock(byteBuff, 0, byteBuff.Length)); 
     } 
     catch (Exception ex) 
     { 
      return "Wrong Input. " + ex.Message; 
     } 
    } 

回答

5

該代碼使用MD5生成指紋。 MD5是一種單向哈希算法。這意味着無法將算法反轉回原始值。散列不是加密。如果你想加密你的字符串並且能夠解密它,你需要使用AES等加密算法。