C#中的CreateSHAHash函数的SHA512反向(解密)

时间:2018-07-02 16:17:41

标签: c#

如何在SHA512中解密加密的sctring

static readonly string securityCode = "mJeb44V5grh0pTB6wgepSw==";
encrypted_Text = CreateSHAHash("12345");
public static string CreateSHAHash(string PasswordSHA512)
{
   SHA512Managed sha512 = new SHA512Managed();
        Byte[] EncryptedSHA512 = sha512.ComputeHash(Encoding.UTF8.GetBytes(string.Concat(PasswordSHA512, securityCode)));
        sha512.Clear();
        return Convert.ToBase64String(EncryptedSHA512);
    }

1 个答案:

答案 0 :(得分:0)

通常,您不能“解密”散列的字符串,因为加密始终是可逆的转换,并且哈希在设计上是不可逆的。

要了解为什么不使用任何数学运算就不可逆的散列,请考虑:

  • SHA-512哈希的长度始终完全相同。

  • 这意味着它只能编码有限数量的消息。

  • 但是您可以选择散列无限数量的可能消息。

  • 通过pigeonhole principle,您不能将无限数量的消息映射到有限数量的哈希中。

∴您不能将哈希值反转为原始消息。