1. Digest::
  2. SHA2

class Digest::SHA2

A meta digest provider class forSHA256,SHA384 andSHA512.

FIPS 180-2 describesSHA2 family of digest algorithms. It defines three algorithms:

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

Alias for:update
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.

Also aliased as:<<