2010-12-08 8 views
5

Los siguientes son ambos hashes SHA256 de una cadena vacía, generados con la función crypt de PHP.¿Es posible probar si dos hash sha2 provienen del mismo texto sin formato?

$5$fooooooooooooooo$Y6IVN.cYkABQ4h8dCR0zL/rJoRx09pwMoGaYST9HqDD 
$5$baaaaaaaaaaaaaar$C84IKQdPMG8qvnnckGZsyBJWKHuaSD0tqcmyueHI0GA 

Cada uno se generó con 16 bytes de sal diferentes presentes en el hash. ¿Hay alguna manera de simplemente probar que son hashes de la misma cosa, sin sabiendo lo que era eso?

+1

No lo creo, pero no pondría dinero en ello. La sal esencialmente cambia la cadena. Sin embargo, una pregunta criptográfica intrigante. – Jonah

+0

@delnan: Pregunta si una cadena deja una huella digital única en un hash, incluso si la sal es diferente. – Jonah

+0

Depende de la longitud de la cadena original: para documentos largos, debería estar bien, pero pueden encontrarse SMS o contraseñas (todo lo que es realmente corto, 8-10 caracteres aproximadamente) (con algún tiempo de cálculo). – thejh

Respuesta

10

No. Las cadenas se vuelven completamente únicas una vez que se agregan las sales, y no hay forma de invertir una cadena con hash.

4

No. Solo podría hacer eso si se usó la misma sal.

+1

+1 para la pistola más rápida: una adición, este es uno de los puntos de salazón, para evitar que los extraños vean que dos valores de hash provienen de la misma entrada. – jball

+0

Técnicamente, con un hash criptográfico no se puede probar que incluso dos hash idénticos que usan la misma sal sean del mismo texto plano. Para un hash N bit, dentro de (2^N) +1 entradas diferentes, DEBE haber al menos una colisión. Como DEBE haber colisiones (donde diferentes entradas dan como resultado el mismo hash), no se puede 'saber' que una entrada dada es idéntica a la entrada original; solo que dan como resultado el mismo hash. – Slartibartfast

Cuestiones relacionadas