Ruby: разница между hexencode и hexdigest - PullRequest
0 голосов
/ 30 мая 2018

Сегодня я прочитал документацию по методу hexdigest для Rubies, например,

Digest::SHA256.hexdigest('123')
=> "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"

В документации написано:

Возвращает значение в шестнадцатеричном формате хэшаданная строка.Это почти эквивалентно Digest.hexencode(Digest::Class.new(*parameters).digest(string)).

Подсветка сделана мной: что здесь почти значит?Чем он отличается?

Конечно, приведенный выше пример строки дает тот же результат:

Digest.hexencode(Digest::SHA256.digest('123'))
=> "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"

Кто-нибудь может указать мне на случаи, когда результат может отличаться?Я хочу понять, указывает ли «почти» на существенную разницу или эта разница для меня не важна.

1 Ответ

0 голосов
/ 30 мая 2018

Как и в модуле Дайджест :: Экземпляр Описано hexdigest(string) Возврат hexencode_str_new(value);.В модуле Дайджест описано hexencode(string) Возврат hexencode_str_new(value); тоже.Таким образом, нет различий, если использовать один и тот же тип экземпляра."почти", потому что в примере документации может быть Digest :: SHA512 или др.

...