Sto tentando di replicare il comportamento Convert.ToBase64String() in Ruby.C# a Ruby sha1 codifica base64
Ecco il mio codice C#:
var sha1 = new SHA1CryptoServiceProvider();
var passwordBytes = Encoding.UTF8.GetBytes("password");
var passwordHash = sha1.ComputeHash(passwordBytes);
return Convert.ToBase64String(passwordHash); // returns "W6ph5Mm5Pz8GgiULbPgzG37mj9g="
Quando provo la stessa cosa in Ruby, ottengo una stringa base64 diverso per lo stesso hash SHA1:
require 'digest/sha1'
require 'base64'
sha1 = Digest::SHA1.hexdigest('password')
# sha1 = 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
base64 = Base64.strict_encode64(sha1)
# base64 = "NWJhYTYxZTRjOWI5M2YzZjA2ODIyNTBiNmNmODMzMWI3ZWU2OGZkOA=="
ho verificato nel debugger che l'array di byte C# passwordBytes
corrisponde al valore sha1
nell'esempio Ruby. C'è un modo speciale in cui ho bisogno di usare Base64 in Ruby per ottenere la stessa stringa prodotta dal codice C#?