模块 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); }
返回给定字符串的 BubbleBabble 编码版本。
来源
static VALUE rb_digest_s_hexencode(VALUE klass, VALUE str) { return hexencode_str_new(str); }
生成给定字符串的十六进制编码版本。