2015-07-13 50 views
0

我已經使用下面的代碼創建了密碼的哈希值..我存儲從下面的方法返回的值。從哈希值獲取密碼的字符串值

public static string CreateHash(string password) 
{ 
    // Generate a random salt 
    RNGCryptoServiceProvider csprng = new RNGCryptoServiceProvider(); 
    byte[] salt = new byte[24]; 
    csprng.GetBytes(salt); 
    HashAlgorithm hashAlg = new SHA256CryptoServiceProvider(); 
    byte[] bytValue = System.Text.Encoding.UTF8.GetBytes(salt + ":" + password); 
    // Hash the password and encode the parameters 
    byte[] bytHash = hashAlg.ComputeHash(bytValue); 
    return 
     Convert.ToBase64String(bytHash); 
} 

現在我想在上面創建哈希值進行解碼.. 我需要密碼的字符串值。如何做呢..?

+0

你不能,散列是單向算法。 – MvdD

+0

此外,能夠檢索密碼的原始值幾乎總是一個壞主意。無論你想要實現什麼,都可以以更好更安全的方式完成。 – Rob

+0

是否有任何其他算法是2種方式,以便我可以將其用於我的邏輯 – axn7975

回答

4

SHA-256是一種單向散列算法。你不能從哈希中得到原始文本,而不是蠻力猜測。

+0

謝謝.. !!有沒有其他的算法是2種方式,以便我可以爲我的邏輯實現它 – axn7975

+0

這取決於你正在嘗試做什麼。散列的常見用例是密碼存儲,在這種情況下,您不希望它是可逆的。不可逆性是重點。 –

+0

我正在尋找簡單的加密和解密功能,其中密碼應鹽化並存儲在加密散列函數中 – axn7975