模組 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 中的 bubble babble 規格。
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
公開類別方法
bubblebabble(string) → bubblebabble_string 按一下以切換來源
傳回給定字串的 BubbleBabble 編碼版本。
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); }