在sha256编码方案中将对象解密回原始消息

时间:2014-03-13 15:41:40

标签: c# encryption sha256

我正在设计一个应用程序,用户可以在Parse.com上的后端保存数据。但是,我希望将数据加密为隐私政策的一部分。所以说用户有一个消息字符串为" Hello World"。我将其加密为哈希并将其上传到Parse Object。但是,当用户需要它时,我该如何解密它呢? 加密代码:

public static string getHashSha256(string text)
    {
        byte[] bytes = Encoding.UTF8.GetBytes(text);
        SHA256Managed hashstring = new SHA256Managed();
        byte[] hash = hashstring.ComputeHash(bytes);
        string hashString = string.Empty;
        foreach (byte x in hash)
        {
            hashString += String.Format("{0:x2}", x);
        }
        return hashString;
    }

高度赞赏其他可能实现相同目的的方法。感谢

3 个答案:

答案 0 :(得分:4)

哈希函数的目的是使用一个简单/快速的函数来计算字符串的哈希值,但是很难从hash --> string开始。

您不需要SHA256,您需要某种真正的加密/解密,例如AES。

答案 1 :(得分:0)

散列是一种方式,就像密码一样,你从用户那里获得密码,哈希并检查已经保存的哈希值。

加密可以解密。它们是两回事。

尝试使用AES进行加密,如果您使用的是.NET,则有AESManaged和AES Cryptoservice提供程序。

对于政府。安装需要FIPS符合您的算法。在这种情况下,这是cryptoservive提供者。请检查您的要求。

答案 2 :(得分:0)

SHA256是这样做的错误方法。

如果你想要一个对称算法,你有相同的加密和解密密钥,你可以看看:

  • Rijndael算法
  • AES
  • DES
  • TripleDes的

对于非对称算法,您可以使用不同的加密和解密密钥,您可以查看RSA

如果您需要一个例子,请让我/我们知道