首页 > 解决方案 > c#中sha256对字符串进行加密和解密

问题描述

下面是我使用 SHA256 加密字符串的代码。

SHA256CryptoServiceProvider x1 = new SHA256CryptoServiceProvider();

byte[] bs1 = System.Text.Encoding.UTF8.GetBytes(text);
bs1 = x1.ComputeHash(bs1);
System.Text.StringBuilder s1 = new System.Text.StringBuilder();

foreach (byte b in bs1)
{
    s1.Append(b.ToString("x2").ToLower());
}

Console.WriteLine(s1.ToString());
Console.ReadKey();

任何人都可以帮助我使用 SHA256 解密生成的字符串吗?

标签: c#

解决方案


您实际上是在生成校验和,而不是加密该文本。这个关于将密码存储为哈希的答案应该有助于澄清这意味着什么。

您无法解密散列值,但可以将其与另一个已知值进行比较以查看它是否匹配。例如,该已知值可能是对密码进行散列处理的结果,或者是来自彩虹表的已知散列。

如果您真的想加密并能够解密数据,您或许应该考虑使用 AES 加密。


推荐阅读