模块 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.
Digest
算法¶ ↑
不同的摘要算法(或哈希函数)可用
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() 的互斥锁。
- VERSION
公共类方法
bubblebabble(string) → bubblebabble_string 点击切换源代码
返回给定string 的泡泡音节编码版本。
static VALUE rb_digest_s_bubblebabble(VALUE klass, VALUE str) { return bubblebabble_str_new(str); }
hexencode(string) → hexencoded_string 点击切换源代码
生成给定字符串的十六进制编码版本。
static VALUE rb_digest_s_hexencode(VALUE klass, VALUE str) { return hexencode_str_new(str); }