C#HMAC实施

时间:2010-03-26 21:42:26

标签: c# cryptography hmac password-encryption

我希望我的应用程序加密用户密码,并且一次密码将被解密以发送到服务器进行身份验证。朋友建议我使用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)?

1 个答案:

答案 0 :(得分:6)

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

如果要加密某些机密数据,则应考虑使用ProtectedData类。更多信息,包括http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx

的示例代码