модуль Digest
Этот модуль предоставляет инфраструктуру для библиотек дайджестов сообщений.
Возможно, вам стоит обратить внимание на OpenSSL::Digest, поскольку он поддерживает больше алгоритмов.
Криптографическая хеш-функция — это процедура, которая принимает данные и возвращает битовую строку фиксированной длины: хеш-значение, также известное как дайджест. Функции Hash также называют односторонними функциями: вычислить дайджест по сообщению легко, но практически невозможно восстановить сообщение по дайджесту.
Примеры
require 'digest' # Compute a complete digest Digest::SHA256.digest 'message' #=> "\xABS\n\x13\xE4Y..." sha256 = Digest::SHA256.new sha256.digest 'message' #=> "\xABS\n\x13\xE4Y..." # Other encoding formats Digest::SHA256.hexdigest 'message' #=> "ab530a13e459..." Digest::SHA256.base64digest 'message' #=> "q1MKE+RZFJgr..." # Compute digest by chunks md5 = Digest::MD5.new md5.update 'message1' md5 << 'message2' # << is an alias for update md5.hexdigest #=> "94af09c09bb9..." # Compute digest for a file sha256 = Digest::SHA256.file 'testfile' sha256.hexdigest
Кроме того, дайджесты можно кодировать в формате «bubble babble» в виде последовательности согласных и гласных, которую легче распознать и сравнить, чем шестнадцатеричный дайджест.
require 'digest/bubblebabble' Digest::SHA256.bubblebabble 'message' #=> "xopoh-fedac-fenyh-..."
См. спецификацию bubble babble по адресу web.mit.edu/kenta/www/one/bubblebabble/spec/jrtrjwzi/draft-huima-01.txt.
Алгоритмы Digest
Доступны различные алгоритмы дайджестов (или хеш-функции):
MD5-
См. RFC 1321 «Алгоритм дайджеста сообщений
MD5». - RIPEMD-160
-
Также доступен как
Digest::RMD160. См. homes.esat.kuleuven.be/~bosselae/ripemd160.html. SHA1-
См. стандарт FIPS 180 «Стандарт безопасного
Hash». -
семейство
SHA2 -
См. стандарт FIPS 180 «Стандарт безопасного
Hash», в котором определены следующие алгоритмы:
Последние версии публикаций FIPS можно найти здесь: csrc.nist.gov/publications/PubsFIPS.html.
Константы
- REQUIRE_MUTEX
-
Мьютекс для Digest().
- VERSION
Общедоступные методы класса
static VALUE
rb_digest_s_bubblebabble(VALUE klass, VALUE str)
{
return bubblebabble_str_new(str);
} Возвращает версию заданной строки, закодированную в формате BubbleBabble.
static VALUE
rb_digest_s_hexencode(VALUE klass, VALUE str)
{
return hexencode_str_new(str);
} Создаёт шестнадцатерично закодированную версию заданной строки.
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.