2012-04-25 10 views
7

Tratando de averiguar qué tipo de hash/encriptación esto es en un SQL db. Queremos crear una aplicación para restablecer las contraseñas, pero no puedo saber cómo están generando este valor.¿Qué tipo de contraseñas/cifrado de contraseña es esto?

Éstos son múltiples ejemplos

{enc:1}gdyb21LQTcIANtvYMT7QVQ== 
{enc:1}ZEImYhrd/Ot/LcewJCFdMw== 
{enc:1}+IOSBzegAx7nSytO1J3GEw== 
{enc:1}6ULa1IFMxavY7SE66K3UDg== 
{enc:1}UEFeGim2M8d0Iee7ejFRUw== 
{enc:1}RjqL5rXOBpqJAKPjYkwLtw== 
{enc:1}V/PEslecyYxFki03H4ctAQ== 
{enc:1}VDEm9QmD+L7tsqcPz/S9XQ== 
{enc:1}YkQuEPpL6dRfDLwKMEVMMg== 
{enc:1}86rG96EP7T3tx9e8C7513g== 
{enc:1}xvSwvsmkgwtXwVISvg7mJQ== 
{enc:1}KjCF0RD4tcUGEP4Bpafw5A== 
{enc:1}z9pGrdm4QAoomrFCJCXQIQ== 
{enc:1}yhLv0HeW90FENKJjV9Nb+g== 
{enc:1}EtYMl5FOW+zdpVvWsIj3Rw== 
+2

El final '==' es un obsequio de la codificación base64. –

+0

Estoy de acuerdo, y la longitud de 22 implica que es un hash de 16 bits, probablemente MD5 ya que se usa comúnmente para contraseñas. Por lo tanto, es *** probablemente *** un hash MD5 codificado en base64 y sin sal. – Ben

Respuesta

10

Llevémoslo aparte:

{enc:1}gdyb21LQTcIANtvYMT7QVQ== 

La parte {enc:1} es probable que sea de versiones de alguna forma. Esto es razonablemente común para que pueda actualizar cualquier algoritmo de hashing/encryption que use con el tiempo. Cada valor identifica el algoritmo utilizado para producir el hash: si la implementación decide utilizar un enfoque diferente, sabría validar una contraseña utilizando la primera versión, pero podría reemplazar el {enc:1} con {enc:2} o lo que sea, junto con el nuevo forma del hash.

El resto es base64 - y tiene 24 caracteres que terminan en ==, lo que significa que el valor original es de 16 bytes.

Así que es un hash de 16 bytes (128 bit) de algún tipo, con un prefijo de control de versiones. Eso es todo lo que podemos decir ... podría ser cualquier hash de 128 bits, o posiblemente 128 bits de un hash más largo (aunque tendrías que preguntarte por qué arrojaron datos en ese punto).

Puede realizar más pruebas si puede crear sus propios usuarios con contraseñas. Por ejemplo, ¿dos usuarios con la misma contraseña terminan con el mismo hash? De lo contrario, si cambia de la contraseña X a la contraseña Y y luego a la contraseña X para un solo usuario, ¿obtiene el mismo hash? (No hay una sal obvia en el valor, aunque el nombre de usuario podría usarse como sal.)

+1

Esto era, el nombre de usuario era la sal. ¡Gracias por su rápida respuesta a un problema que me estaba volviendo loco! Utilicé este sitio para confirmar http://www.insidepro.com/hashes.php?lang=eng –

Cuestiones relacionadas