Pregunta

Los implementos MessageDigest clase el algoritmo SHA-1 (entre muchas otras). El algoritmo SHA-1 permite utilizar diferentes "semillas" o digiere iniciales. Ver SHA-1 psuedocode

El algoritmo se inicializa variables, o la semilla:

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

Sin embargo la clase MessageDigest, como se describe en el Manual de Java en línea , no proporciona ninguna API para configurar estas variables iniciales. De hecho, no indica el valor de las variables iniciales.

¿Cómo puedo configurar la semilla inicial para el algoritmo SHA-1?

Cuando es un ejemplo de SHA-1 en Java, UTILIZANDO UN semilla inicial ?
(Busco la implementación SHA-1, a menos que los usos de ejemplo MessageDigest con una semilla inicial alternativo.)

¿Fue útil?

Solución 2

La función de Java no se puede suministrar con una semilla inicial.

I copiar una implementación C de SHA-1 algoritmo y lo modificó para permitir el cambio de los valores iniciales de semillas.

Otros consejos

¿Dónde te ves en la necesidad de una semilla en un SHA-1 digerir? Normalmente en el algoritmo de cifrado con una necesidad de fuente de números aleatorios, una semilla es "necesario". Pero en SHA-1 que ni siquiera utiliza números aleatorios en absoluto, por lo que no hay semilla o vector inicial al conjunto. Las variables que mencionas son 'duras' (constantes), que son parte del algoritmo, no es necesario el uso o para cambiar los valores de h0-4.

recomiendo el uso de una sal en lugar de una semilla para messageDigest funciones hash familia. Una sal se aplica mediante, por ejemplo, anteponiendo la sal de bytes a la entrada.

agregar prefijos a un sal también es más potente que la configuración directamente los valores de semillas, ya que además de cambiar el estado interno de la almohadilla, si la sal no es un múltiplo del tamaño de bloque digerir entonces puede también perturbar la alineación con la que la entrada se introduce en la función de hash.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top