class OpenSSL::Digest

要約

ハッシュ関数のためのインターフェースを提供するクラスです。

このインターフェースには2通りの利用法が存在します。一方は文字列から直接ハッシュを計算する (OpenSSL::Digest.digest, Digest::Instance#hexdigest) 方法です。短い文字列のダイジェストを取るときにはこちらを使えばよいでしょう。

もう一つはダイジェストオブジェクトを作成して、文字列を順次 OpenSSL::Digest#update で渡すことでダイジェストを計算します。大きなファイルのハッシュ値を計算する場合などに利用します。

例:

require 'openssl'
digest = OpenSSL::Digest.new("sha256")

File.open(filename){|f|
  while data = f.read(1024)
    digest.update(data)
  end
}
puts digest.hexdigest

digest も参照してください。

目次

特異メソッド
インスタンスメソッド

継承しているメソッド

特異メソッド

digest(name, data) -> String[permalink][rdoc]

data のダイジェストを計算します。

name でハッシュ関数を指定します。

[PARAM] name:
ハッシュ関数の種類を文字列("md5", "sha256" など)で指定
[PARAM] data:
ダイジェストを計算する文字列
new(name, data=nil) -> OpenSSL::Digest[permalink][rdoc]

ダイジェストオブジェクトを生成します。

name でハッシュ関数の種類を選びます。

data に文字列を渡すと、その文字列でオブジェクトの内部状態を更新します。

[PARAM] name:
ハッシュ関数の種類を文字列("md5", "sha256" など)で指定
[PARAM] data:
入力文字列
[EXCEPTION] RuntimeError:
サポートされていないアルゴリズムを指定した場合に発生します

インスタンスメソッド

update(data) -> self[permalink][rdoc]
self << data -> self

data でダイジェストオブジェクトの内部状態を更新します。

[PARAM] data:
入力文字列
block_length -> Integer[permalink][rdoc]

ハッシュ関数のブロックサイズを返します。

digest_length -> Integer[permalink][rdoc]

ハッシュ値の長さ(バイト数)を返します。

name -> String[permalink][rdoc]

ハッシュ関数の名前を返します。

reset -> self[permalink][rdoc]

ダイジェストオブジェクトの内部状態をリセットします。