2015-11-19 1 views
0

Je suis en train de développer et j'ai besoin de tester mon identifiant/mot de passe.Décryptage du mot de passe rfc2898

Le problème est dans la base de données que le mot de passe est crypté.

J'ai les informations suivantes.

  • clé
  • itération
  • sel

Est-ce assez pour récupérer le mot de passe? Par ailleurs, je peux également éditer ces valeurs si cela peut vous aider.

+2

Il suffit de réinitialiser le mot de passe. Les algorithmes de hachage ne sont pas conçus pour être conçus à rebours, ils génèrent simplement une sortie basée sur votre logique d'entrée et d'utilisation pour réduire les collisions. Même la longueur de votre chaîne se perd dans le processus de hachage. Mais il y a encore de l'espoir, un nombre infini de collisions existent. Vous pouvez essayer de saisir des caractères aléatoires en même temps que le sel, mais pour rencontrer une collision, il est impossible de dire combien de temps cela prendra, surtout si l'algorithme de hachage est lent. Mais à cause du sel, les bases de données précalculées ne vont pas vous aider du tout. Laisse tomber et passe à autre chose. – Ultimater

+0

Voir https://en.wikipedia.org/wiki/PBKDF2 La recherche de collisions sera difficile en raison du temps de calcul. – Ultimater

Répondre

2

Je pense que vous avez mal compris, comment fonctionne une API de mot de passe. Vous ne pouvez pas inverser un mot de passe correctement haché, mais vous pouvez valider un mot de passe entré par rapport au hachage stocké.

Pour valider le mot de passe saisi, vous devez à nouveau calculer le hachage avec les mêmes paramètres que ceux utilisés pour créer le premier hachage. Ensuite, vous pouvez comparer les deux hachages, s'ils correspondent, le mot de passe était le même.

1

Vous ne pouvez pas inverser PBKDF2, mais vous pouvez forcer les mots de passe communs pour voir si l'un d'entre eux correspond. Si un sel aléatoire est utilisé à chaque fois, vous devrez le faire pour chaque mot de passe de manière indépendante. Si un grand nombre d'itérations est utilisé, alors préparez-vous à prendre très longtemps.

0

D'abord, vous devriez simplement le réinitialiser. Deuxièmement, vous pouvez le récupérer si et seulement si le mot de passe était faible (en supposant que PBKDF2 correctement implémenté), et vous savez quel HMAC il a utilisé (probablement PBKDF2-HMAC-SHA-1 - test avec un mot de passe connu) , ou vous êtes prêt à passer du temps à essayer plusieurs et espérer.

Essayez un outil tel que oclHashcat conçu pour le cracking de mot de passe - note PBKDF2 generic at the end of the list of examples pour cela, de préférence avec un ou plusieurs bons GPU.

Alternativement, si vous ne faites que tester votre API de mot de passe, vous pouvez exécuter les vecteurs de test au my Github repository et voir si vos résultats sont corrects ou non.