2012-04-25 3 views
7

Essayer de trouver quel type de hachage/cryptage cela est dans une base de données SQL. Nous voulons créer une application pour faire des réinitialisations de mot de passe mais je ne peux pas pour la vie de moi trouver comment ils génèrent cette valeur.Quel genre de mot de passe hachage/cryptage est-ce?

Voici plusieurs exemples

{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

La fin '==' est un cadeau mort du codage base64. –

+0

Je suis d'accord, et la longueur de 22 implique qu'il s'agit d'un hachage de 16 bits, probablement MD5 puisque cela est couramment utilisé pour les mots de passe. C'est donc probablement *** un hachage MD5 non salé et non codé en base64. – Ben

Répondre

10

nous allons le démonter:

{enc:1}gdyb21LQTcIANtvYMT7QVQ== 

La partie {enc:1} est susceptible d'être versioning d'une certaine forme. Ceci est assez commun afin que vous puissiez mettre à jour tout algorithme de hachage/cryptage que vous utilisez au fil du temps. Chaque valeur identifie l'algorithme utilisé pour produire le hachage - si la mise en œuvre décide d'utiliser une approche différente, validerait un mot de passe en utilisant la première version, mais pourrait alors remplacer le {enc:1} par {enc:2} ou quoi que ce soit, avec le nouveau forme du hachage.

Le reste est base64 - et ses 24 caractères se terminent par ==, ce qui signifie que la valeur d'origine est de 16 octets.

Il s'agit donc d'un hachage de 16 octets (128 bits), avec un préfixe de versionnage. C'est à peu près tout ce que nous pouvons dire ... ce pourrait être n'importe quel 128 bits de hachage, ou peut-être 128 bits d'un hachage plus long (bien que vous devriez vous demander pourquoi ils ont jeté des données à ce point).

Vous pouvez effectuer d'autres tests si vous pouvez créer vos propres utilisateurs avec des mots de passe. Par exemple, est-ce que deux utilisateurs ayant le même mot de passe se retrouvent avec le même hachage? Si ce n'est pas le cas, si vous passez du mot de passe X au mot de passe Y et que vous revenez au mot de passe X pour un seul utilisateur, obtient-il le même hachage? (Il n'y a pas de sel évident dans la valeur, bien que le nom d'utilisateur puisse être utilisé comme sel.)

+1

C'était ça, le nom d'utilisateur était le sel. Merci pour votre réponse rapide à un problème qui me rendait fou! J'ai utilisé ce site pour confirmer http://www.insidepro.com/hashes.php?lang=eng –