Implementação C# HMAC
-
22-09-2019 - |
Pergunta
Quero que meu aplicativo criptografa uma senha de usuário e, ao mesmo tempo, a senha será descriptografada para ser enviada ao servidor para autenticação. Um amigo me aconselha a usar o HMAC. Eu escrevi o seguinte código em 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();
Como decodificar a senha (Resultado, neste caso)?
Solução
Um HMAC (código de autenticação da mensagem hash) não é criptografia, sua função de hash (neste caso SHA-256) mais uma chave secreta. É com perdas, não há como derivar o texto simples do HMAC.
Se você deseja criptografar alguns dados secretos, considere usar a classe ProtectedData. Mais informações, incluindo o código de amostra em http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow