module Digest

Dieses Modul bietet ein Framework für Message-Digest-Bibliotheken.

Möglicherweise möchten Sie OpenSSL::Digest ansehen, da es mehr Algorithmen unterstützt.

Eine kryptografische Hash-Funktion ist ein Verfahren, das Daten entgegennimmt und eine feste Bit-Zeichenkette zurückgibt: den Hash-Wert, auch bekannt als Digest. Hash-Funktionen werden auch als Einwegfunktionen bezeichnet; es ist einfach, einen Digest aus einer Nachricht zu berechnen, aber es ist nicht machbar, eine Nachricht aus einem Digest zu generieren.

Beispiele

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

Zusätzlich können Digests im "Bubble Babble"-Format als eine Folge von Konsonanten und Vokalen kodiert werden, was besser erkennbar und vergleichbar ist als ein hexadezimaler Digest.

require 'digest/bubblebabble'

Digest::SHA256.bubblebabble 'message' #=> "xopoh-fedac-fenyh-..."

Siehe die Bubble Babble-Spezifikation unter web.mit.edu/kenta/www/one/bubblebabble/spec/jrtrjwzi/draft-huima-01.txt.

Digest-Algorithmen

Verschiedene Digest-Algorithmen (oder Hash-Funktionen) sind verfügbar

MD5

Siehe RFC 1321 Der MD5 Message-Digest-Algorithmus

RIPEMD-160

Als Digest::RMD160. Siehe homes.esat.kuleuven.be/~bosselae/ripemd160.html.

SHA1

Siehe FIPS 180 Secure Hash Standard.

SHA2-Familie

Siehe FIPS 180 Secure Hash Standard, der die folgenden Algorithmen definiert

Die neuesten Versionen der FIPS-Publikationen finden Sie hier: csrc.nist.gov/publications/PubsFIPS.html.