當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Digest模塊用法及代碼示例


本文簡要介紹ruby語言中 Digest模塊 的用法。

該模塊為消息摘要庫提供了一個框架。

您可能需要查看 OpenSSL::Digest ,因為它支持更多算法。

加密哈希函數是一個獲取數據並返回固定位字符串的過程:哈希值,也稱為 digest Hash 函數也稱為one-way函數,從消息中計算摘要很容易,但從摘要中生成消息是不可行的。

例子

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.

Digest 算法

可以使用不同的摘要算法(或哈希函數):

MD5

請參閱 RFC 1321 MD5 消息摘要算法

RIPEMD-160

作為 Digest::RMD160 。請參閱homes.esat.kuleuven.be/~bosselae/ripemd160.html

SHA1

請參閱 FIPS 180 安全 Hash 標準。

SHA2 家庭

請參閱定義以下算法的 FIPS 180 Secure Hash 標準:

  • SHA512

  • SHA384

  • SHA256

可以在此處找到最新版本的 FIPS 出版物:csrc.nist.gov/publications/PubsFIPS.html

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Digest模塊。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。