модуль 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.
Алгоритмы хеширования
Доступны различные алгоритмы хеширования (или функции хеширования):
- HMAC
-
См. FIPS PUB 198 The Keyed-Hash Message Authentication Code (HMAC).
- RIPEMD-160
-
Как Digest::RMD160. См. homes.esat.kuleuven.be/~bosselae/ripemd160.html.
- SHA1
-
См. Стандарт FIPS 180 Secure Hash.
- Семейство SHA2
-
См. Стандарт FIPS 180 Secure Hash, который определяет следующие алгоритмы:
-
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.