¿Cómo genera la membresía de ASP.NET su clave salt y luego cómo la codifican (es decir, es salt + password o password + salt)?¿Sal de miembro de ASP.NET?
Estoy usando SHA-1 con mi membresía, pero me gustaría recrear las mismas sales para que la membresía incorporada pueda hacer hash de la misma manera que mis cosas.
Editar 2: No importa. Lo leí mal y estaba pensando que decía bytes, no bits. Así que estaba pasando en 128 bytes, no en 128 bits.
Edit: He estado intentando que sea así. Esto es lo que tengo,
public string EncodePassword(string password, string salt)
{
byte[] bytes = Encoding.Unicode.GetBytes(password);
byte[] src = Encoding.Unicode.GetBytes(salt);
byte[] dst = new byte[src.Length + bytes.Length];
Buffer.BlockCopy(src, 0, dst, 0, src.Length);
Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
HashAlgorithm algorithm = HashAlgorithm.Create("SHA1");
byte[] inArray = algorithm.ComputeHash(dst);
return Convert.ToBase64String(inArray);
}
private byte[] createSalt(byte[] saltSize)
{
byte[] saltBytes = saltSize;
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetNonZeroBytes(saltBytes);
return saltBytes;
}
así que no he tratado de ver si la suscripción de ASP.NET lo reconocerá sin embargo, el hash de la contraseña parece estar cerca. Simplemente no sé cómo convertirlo a base64 para la sal.
lo hice
byte[] storeSalt = createSalt(new byte[128]);
string salt = Encoding.Unicode.GetString(storeSalt);
string base64Salt = Convert.ToBase64String(storeSalt);
int test = base64Salt.Length;
Probar la longitud es de 172, que está muy por encima de los 128 bits por lo que lo que estoy haciendo mal?
Esto es lo que se ve como su sal
vkNj4EvbEPbk1HHW+K8y/A==
Esto es lo que parece mi sal como
E9oEtqo0livLke9+csUkf2AOLzFsOvhkB/NocSQm33aySyNOphplx9yH2bgsHoEeR/aw/pMe4SkeDvNVfnemoB4PDNRUB9drFhzXOW5jypF9NQmBZaJDvJ+uK3mPXsWkEcxANn9mdRzYCEYCaVhgAZ5oQRnnT721mbFKpfc4kpI=
Usted puede comprobar mi respuesta en este SO página: http://stackoverflow.com/questions/530426/reimplement-asp-net-membership-and- user-password-hashing-in-ruby/8184569 # 8184569 –