Question

La classe MessageDigest implémente l'algorithme SHA-1 (entre autres). L'algorithme SHA-1 permet d'utiliser différentes « graines » ou digests initiales. Voir psuedocode SHA-1

L'algorithme initialise les variables ou les semences:

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

Cependant la classe MessageDigest, comme décrit dans la section Manuel en ligne Java , ne fournit aucune API pour la définition de ces variables initiales. En fait, il ne précise pas la valeur des variables initiales.

Comment puis-je mettre la graine initiale pour l'algorithme SHA-1?

Où est un exemple de SHA-1 en Java, UTILISATION D'UN SEED INITIAL
(Je suis à la recherche pour la mise en œuvre SHA-1, à moins que l'exemple utilise MessageDigest avec une graine de rechange initiale.)

Était-ce utile?

La solution 2

La fonction Java ne peut pas être fourni avec une graine initiale.

I copié une implémentation C de l'algorithme SHA-1 et modifié pour permettre le changement des valeurs de départ initiales.

Autres conseils

Où voyez-vous la nécessité d'une graine dans un condensé SHA-1? Normalement, dans l'algorithme de chiffrement avec un besoin de source de nombres aléatoires, une graine est « nécessaire ». Mais dans SHA-1 vous n'utilisez même pas des nombres aléatoires du tout, donc il n'y a pas de graines ou d'un vecteur initial à définir. Les variables que vous avez mentionnées sont « dures » (constantes), ils font partie de l'algorithme, pas besoin ou utiliser pour modifier les valeurs de h0-4.

Je recommande d'utiliser un sel au lieu d'une graine pour les fonctions de hachage de la famille MessageDigest. Un sel est appliqué, par exemple, les préfixant octets de sel à l'entrée.

Préfixer un sel est aussi plus puissante que la définition directe des valeurs de départ, car en plus de modifier l'état interne de la table de hachage, si le sel est pas un multiple de la taille de bloc de digestion, il peut alors également perturber l'alignement avec lequel l'entrée est introduit dans la fonction de hachage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top