Модуль 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-..."
См. спецификацию «пузырьковые пузыри» по адресу 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, который определяет следующие алгоритмы:-
SHA512
-
SHA384
-
SHA256
-
Последние версии публикаций 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);
}Возвращает закодированную в формате «пузырьковые пузыри» версию заданной строки.
static VALUE
rb_digest_s_hexencode(VALUE klass, VALUE str)
{
return hexencode_str_new(str);
}Генерирует шестнадцатеричное кодированную версию заданной строки.
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.