Pergunta

I'm using SHA1 to encrypt some values like password. This is my code:

String passwd = Membership.GeneratePassword(10, 2);
SHA1 sha = new SHA1CryptoServiceProvider();
byte [] password = sha.ComputeHash(passwd);

But VS returns error, because passwd is a string. I have to store the password in a byte array, so is there a way to solve this?

Foi útil?

Solução

String passwd = Membership.GeneratePassword(10, 2);
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(passwd);
SHA1 sha = new SHA1CryptoServiceProvider();
byte [] password = sha.ComputeHash(bytes);

Note that SHA1 does not encrypt data but hash them instead. Encrypted data can be decrypted. Hash algorithms are one way.

Outras dicas

Use an Encoding to convert the string to a byte array

var bytes= Encoding.UTF8.GetBytes(passwd);
var password = sha.ComputeHash(bytes);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top