2015-07-13 54 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