Как конвертировать Ruby's SHA512.hexdigest в C #? - PullRequest
2 голосов
/ 09 февраля 2011

Я переписываю веб-приложение Rails на C #.Я действительно застрял с хэш-функцией Руби:

# Generates a 128 character hash
def Password.hash(password,salt)
  Digest::SHA512.hexdigest("#{password}:#{salt}")
end

Следующая функция C # дает другой результат:

 private static string Hash(string password, string salt)
 {
     return BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(password + ":" + salt))).Replace("-", "").ToLower();
 }

Что я делаю не так?

Спасибовы

1 Ответ

6 голосов
/ 09 февраля 2011

Неважно. Результаты на самом деле ARE одинаковы. Так что если вам когда-нибудь понадобится конвертировать хэши Ruby в C #,

Digest::SHA512.hexdigest(some_string)

делает то же самое, что и

BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(someString))).Replace("-", "").ToLower();

C # намного более многословен, но главное, что он работает! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...