class Digest::SHA2
A meta digest provider class forSHA256,SHA384 andSHA512.
FIPS 180-2 describesSHA2 family of digest algorithms. It defines three algorithms:
one which works on chunks of 512 bits and returns a 256-bit digest (
SHA256),one which works on chunks of 1024 bits and returns a 384-bit digest (
SHA384),and one which works on chunks of 1024 bits and returns a 512-bit digest (
SHA512).
Examples¶↑
require'digest'# Compute a complete digestDigest::SHA2.hexdigest'abc'# => "ba7816bf8..."Digest::SHA2.new(256).hexdigest'abc'# => "ba7816bf8..."Digest::SHA256.hexdigest'abc'# => "ba7816bf8..."Digest::SHA2.new(384).hexdigest'abc'# => "cb00753f4..."Digest::SHA384.hexdigest'abc'# => "cb00753f4..."Digest::SHA2.new(512).hexdigest'abc'# => "ddaf35a19..."Digest::SHA512.hexdigest'abc'# => "ddaf35a19..."# Compute digest by chunkssha2 =Digest::SHA2.new# =>#<Digest::SHA2:256>sha2.update"ab"sha2<<"c"# alias for #updatesha2.hexdigest# => "ba7816bf8..."# Use the same object to compute another digestsha2.resetsha2<<"message"sha2.hexdigest# => "ab530a13e..."
Public Class Methods
Source
# File ext/digest/sha2/lib/sha2.rb, line 61definitialize(bitlen =256)casebitlenwhen256@sha2 =Digest::SHA256.newwhen384@sha2 =Digest::SHA384.newwhen512@sha2 =Digest::SHA512.newelseraiseArgumentError,"unsupported bit length: %s"%bitlen.inspectend@bitlen =bitlenend
Create a newSHA2 hash object with a given bit length.
Valid bit lengths are 256, 384 and 512.
Public Instance Methods
Source
# File ext/digest/sha2/lib/sha2.rb, line 112defblock_length@sha2.block_lengthend
Return the block length of the digest in bytes.
Digest::SHA256.new.block_length*8# => 512Digest::SHA384.new.block_length*8# => 1024Digest::SHA512.new.block_length*8# => 1024
Source
# File ext/digest/sha2/lib/sha2.rb, line 130defdigest_length@sha2.digest_lengthend
Return the length of the hash value (the digest) in bytes.
Digest::SHA256.new.digest_length*8# => 256Digest::SHA384.new.digest_length*8# => 384Digest::SHA512.new.digest_length*8# => 512
For example, digests produced byDigest::SHA256 will always be 32 bytes (256 bits) in size.
Source
# File ext/digest/sha2/lib/sha2.rb, line 79defreset@sha2.resetselfend
Reset the digest to the initial state and return self.
Source
# File ext/digest/sha2/lib/sha2.rb, line 89defupdate(str)@sha2.update(str)selfend
Update the digest using a givenstring and return self.