本文简要介绍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模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。