Вопрос

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?

Это было полезно?

Решение

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.

Другие советы

Use an Encoding to convert the string to a byte array

var bytes= Encoding.UTF8.GetBytes(passwd);
var password = sha.ComputeHash(bytes);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top