модуль Digest
Этот модуль предоставляет основу для библиотек вычисления дайджестов сообщений.
Возможно, вам стоит взглянуть на OpenSSL::Digest, так как он поддерживает больше алгоритмов.
Криптографическая функция хэширования — это процедура, которая принимает данные и возвращает строку фиксированной длины: значение хэша, также известное как дайджест. Функции хэширования также называются односторонними функциями, легко вычислить дайджест из сообщения, но практически невозможно сгенерировать сообщение из дайджеста.
Примеры
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
Кроме того, дайджесты могут быть закодированы в формате «пузырьковые пузыри» как последовательность согласных и гласных, что более узнаваемо и сравнимо, чем шестнадцатеричный дайджест.
require 'digest/bubblebabble' Digest::SHA256.bubblebabble 'message' #=> "xopoh-fedac-fenyh-..."
См. спецификацию пузырьковых пузырей по адресу web.mit.edu/kenta/www/one/bubblebabble/spec/jrtrjwzi/draft-huima-01.txt.
Алгоритмы дайджестов
Доступны различные алгоритмы дайджестов (или функции хэширования):
- MD5
-
См. RFC 1321 Алгоритм дайджеста сообщений MD5
- RIPEMD-160
-
Как Digest::RMD160. См. homes.esat.kuleuven.be/~bosselae/ripemd160.html.
- SHA1
-
См. Стандарт FIPS 180 Безопасный хэш.
- Семейство SHA2
-
См. Стандарт FIPS 180 Безопасный хэш, который определяет следующие алгоритмы:
-
SHA512
-
SHA384
-
SHA256
-
Последние версии публикаций FIPS можно найти здесь: csrc.nist.gov/publications/PubsFIPS.html.
Константы
- REQUIRE_MUTEX
-
Мьютекс для Digest().
Общедоступные методы класса
static VALUE
rb_digest_s_bubblebabble(VALUE klass, VALUE str)
{
return bubblebabble_str_new(str);
} Возвращает закодированную в формате «пузырьковые пузыри» версию заданной строки.
static VALUE
rb_digest_s_hexencode(VALUE klass, VALUE str)
{
return hexencode_str_new(str);
} Генерирует шестнадцатерично закодированную версию заданной строки.
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.