модуль 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);
} Возвращает версию заданной строки string, закодированную в формате BubbleBabble.
static VALUE
rb_digest_s_hexencode(VALUE klass, VALUE str)
{
return hexencode_str_new(str);
} Создает шестнадцатерично закодированную версию заданной строки string.
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.