本文簡要介紹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 Digest.update用法及代碼示例
- Ruby DigestIO.digests用法及代碼示例
- Ruby DigestIO.wrap用法及代碼示例
- Ruby Digest.<<用法及代碼示例
- Ruby Digest.block_length用法及代碼示例
- Ruby Digest.name用法及代碼示例
- Ruby Digest類用法及代碼示例
- Ruby Digest.digest用法及代碼示例
- Ruby Digest.digest_length用法及代碼示例
- Ruby Digest.new用法及代碼示例
- Ruby Dir.pos用法及代碼示例
- Ruby Dir.chdir用法及代碼示例
- Ruby Dir.read用法及代碼示例
- Ruby Dir.each_child用法及代碼示例
- Ruby Dir.mktmpdir用法及代碼示例
- Ruby Dir.entries用法及代碼示例
- Ruby Dir.tell用法及代碼示例
- Ruby Dir.fileno用法及代碼示例
- Ruby Dir.foreach用法及代碼示例
- Ruby DidYouMean模塊用法及代碼示例
- Ruby Dir.children用法及代碼示例
- Ruby Dir.glob用法及代碼示例
- Ruby Dir.pos =用法及代碼示例
- Ruby Dir.mkdir用法及代碼示例
- Ruby Dir.each用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Digest模塊。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。