0

我希望我的应用程序加密用户密码,并且有一次密码将被解密以发送到服务器进行身份验证。一位朋友建议我使用 HMAC。我在 C# 中编写了以下代码:

System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] key = encoding.GetBytes("secret");
HMACSHA256 myhmacsha256 = new HMACSHA256(key);
byte[] hashValue = myhmacsha256.ComputeHash(encoding.GetBytes("text"));
string resultSTR = Convert.ToBase64String(hashValue);
myhmacsha256.Clear();

如何解码密码(在这种情况下为 resultSTR)?

4

1 回答 1

6

HMAC(散列消息验证码)不是加密,它是散列函数(在本例中为 SHA-256)加上一些密钥。这是有损的,没有办法从 HMAC 派生明文。

如果你想加密一些秘密数据,你应该考虑使用 ProtectedData 类。更多信息,包括http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx上的示例代码

于 2010-03-26T21:46:35.930 回答