Estoy intentando replicar el comportamiento Convert.ToBase64String() en Ruby.C# a Ruby sha1 base64 codificar
Aquí está mi código C#:
var sha1 = new SHA1CryptoServiceProvider();
var passwordBytes = Encoding.UTF8.GetBytes("password");
var passwordHash = sha1.ComputeHash(passwordBytes);
return Convert.ToBase64String(passwordHash); // returns "W6ph5Mm5Pz8GgiULbPgzG37mj9g="
Cuando intento lo mismo en Ruby, consigo una cadena base64 diferente para el mismo hash SHA1:
require 'digest/sha1'
require 'base64'
sha1 = Digest::SHA1.hexdigest('password')
# sha1 = 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
base64 = Base64.strict_encode64(sha1)
# base64 = "NWJhYTYxZTRjOWI5M2YzZjA2ODIyNTBiNmNmODMzMWI3ZWU2OGZkOA=="
verifiqué en el depurador que la matriz de bytes C# passwordBytes
coincide con el valor sha1
en el ejemplo de Ruby. ¿Hay alguna manera especial en que necesito usar Base64 en Ruby para obtener la misma cadena que produce el código C#?