模块 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
此外,摘要可以以“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 安全哈希标准。
SHA2
系列-
请参阅 FIPS 180 安全哈希标准,其中定义了以下算法
可以在这里找到最新版本的 FIPS 出版物:csrc.nist.gov/publications/PubsFIPS.html。
常量
- REQUIRE_MUTEX
Digest() 的互斥锁。
- VERSION
公共类方法
bubblebabble(string) → bubblebabble_string 单击以切换源
返回给定 string 的 BubbleBabble 编码版本。
static VALUE rb_digest_s_bubblebabble(VALUE klass, VALUE str) { return bubblebabble_str_new(str); }
hexencode(string) → hexencoded_string 单击以切换源
生成给定 string 的十六进制编码版本。
static VALUE rb_digest_s_hexencode(VALUE klass, VALUE str) { return hexencode_str_new(str); }