module 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 The
MD5Message-Digest Algorithm - RIPEMD-160
-
作为
Digest::RMD160。请参阅 homes.esat.kuleuven.be/~bosselae/ripemd160.html。 SHA1-
请参阅 FIPS 180 Secure
HashStandard。 SHA2系列-
请参阅 FIPS 180 Secure
HashStandard,其中定义了以下算法。
FIPS出版物的最新版本可以在这里找到:csrc.nist.gov/publications/PubsFIPS.html。
Constants
- REQUIRE_MUTEX
-
Digest().的互斥锁。
- VERSION
-
版本字符串
Public Class Methods
Source
static VALUE
rb_digest_s_bubblebabble(VALUE klass, VALUE str)
{
return bubblebabble_str_new(str);
}
返回给定string的 BubbleBabble 编码版本。
Source
static VALUE
rb_digest_s_hexencode(VALUE klass, VALUE str)
{
return hexencode_str_new(str);
}
生成给定string的十六进制编码版本。