Frage

Die Message Klasse implementiert den SHA-1-Algorithmus (unter vielen anderen). Der SHA-1-Algorithmus erlaubt es, verschiedene „Samen“ oder anfängliches Verdaus zu verwenden. Siehe SHA-1 Psuedocode

Der Algorithmus initialisiert Variablen oder den Samen:

Initialize variables:
h0 = 0x67452301
h1 = 0xEFCDAB89
h2 = 0x98BADCFE
h3 = 0x10325476
h4 = 0xC3D2E1F0

Doch die Message Klasse, wie in der Online-Java-Handbuch bietet keine API diese anfänglichen Variablen für die Einstellung. In der Tat, geben Sie es nicht den Wert der ursprünglichen Variablen.

Wie kann ich die anfänglichen Samen für den SHA-1-Algorithmus eingestellt?

Wo ist ein Beispiel für SHA-1 in Java, unter Verwendung einer anfänglichen SEED ?
(Ich suche nach der SHA-1-Implementierung, es sei denn, die Verwendungsbeispiele mit einem alternativen Ausgang Samt MessageDigest.)

War es hilfreich?

Lösung 2

Die Java-Funktion kann nicht mit einem anfänglichen Saatgut versorgt werden.

I kopiert ein C Umsetzung von SHA-1-Algorithmus und modifiziert es Wechseln der anfänglichen Startwerte zu ermöglichen.

Andere Tipps

Wo sehen Sie die Notwendigkeit für einen Samen in einem SHA-1 verdauen? Normalerweise in Verschlüsselungsalgorithmus mit einem Bedarf von Quelle von Zufallszahlen, ein Samen ist „erforderlich“. Aber in SHA-1 Sie nicht einmal verwenden Zufallszahlen überhaupt, so gibt es keine Samen oder Anfangsvektor zu setzen. Die Variablen, die Sie erwähnt sind ‚harte‘ (Konstanten), sie sind Teil des Algorithmus sind, keine Notwendigkeit oder Verwendung der Werte von h0-4 zu ändern.

Ich empfehle ein Salz anstelle eines Samens für Message Familie Hash-Funktionen. Ein Salz wird aufgebracht, indem zum Beispiel des Voranstellen des Salzes Bytes an den Eingang.

ein Salz Voranstellen ist auch stärker als die Seed-Werte direkt einstellen, weil zusätzlich zu dem internen Zustand des Hash ändern, wenn das Salz nicht ein Vielfach der Digests Blockgröße ist, dann kann es auch stört die Ausrichtung, mit der die Eingabe in die Hash-Funktion zugeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top