创建唯一加密

时间:2011-08-02 08:59:42

标签: c# encryption

用于加密字符串以创建独特的指纹,如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;
        }
    }

1 个答案:

答案 0 :(得分:5)

代码使用MD5生成指纹。 MD5是一种单向散列算法。这意味着无法反转算法以获取原始值。散列不是加密。如果要加密字符串并能够对其进行解密,则需要使用AES等加密算法。