Nichts ist falsch daran, es ist nur etwas anderes.
digest('Passwort','sha512') berechnet den SHA-512 Hash von 'Passwort'.
Das Ergebnis ist ein 512 Bit (64 Byte) langes bytea (ungefähr äquivalent
zu binary in MySQL orde blob in Oracle).
Die SHA-512-Variante von crypt(3) berechnet nicht einfach den SHA-512
Hash das Passworts. Sie verwendet den SHA-512-Algorithmus nur als
Baustein, um das Passwort und das Salt miteinander zu kombinieren (und
das nicht nur einmal, sondern oft. Wenn Du den von Dir angestoßenen
Thread in dcoulm gelesen hast (und Dich nicht nur über die Antworten,
die Dir nicht gefallen haben, beklagt), dann ist Dir wahrscheinlich der
Parameter "rounds" aufgefallen, den mindestens eine Person erwähnt hat).
Das hat mehrerere Gründe:
* Man soll nicht auf den ersten Blick erkennen, dass zwei Benutzer das
gleiche Passwort haben. SHA-512('Passwort') ist immer
aaf6a7d781d14ad069bf26988cbda52043197c14f3a9762778a7ba9d31bebce0bfbb27368e39c18471dc611731877cd4796b80c660ff9be2d0d63eaa649c4c1d,
wenn zwei oder mehr User dieses (dumme) Passwort gewählt haben, muss
ich es nur einmal knacken. Ein zufälliges Salt verhindert das.
* Man soll nicht Passwort-Hashes "auf Vorrat" berechnen können. Es gibt
bei SHA512-crypt soweit ich sehe 2^128 verschiedene Salts, man müsste
also für jedes Passwort 2^128 Hashes berechnen, um eine Rainbow-Table
erstellen zu können. Das ist offensichtlich unmöglich.
* Das Überprüfen eines Passworts soll spürbar Zeit brauchen.
Hash-Algorithmen wie SHA-512 sollen schnell sein: Man will sie
verwenden können, um Hashes großer Datenmengen in kurzer Zeit zu
berechnen (denke an Daten, die über eine Gigabit-, 10-Gigabit- oder
gar 100 Gigabit-Leitung geschickt werden). Passwörter sind kurz, und
werden selten überprüft (wenn wer Millionen Passwörter pro Sekunde
überprüfen will, führt er meistens nichts Gutes im Schilde). Also will
man für ein Passwort SHA-512 oft aufrufen. Wenn möglich mit variabler
Anzahl der Runden, damit man die Geschwindigkeit an die
Geschwindigkeit des Prozessors (und die Wichtigkeit des Passworts)
anpassen kann.
hp
--
_ | Peter J. Holzer | Fluch der elektronischen Textverarbeitung:
|_|_) | | Man feilt solange an seinen Text um, bis
| | |
h...@hjp.at | die Satzbestandteile des Satzes nicht mehr
__/ |
http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel