J'ai un modèle d'utilisateur sur mon application, et mon champ de mot de passe utilise sha1. Ce que je veux c'est, quand j'obtiens le sha1 de la DB, pour en faire une chaîne à nouveau. Comment je fais ça?Convertir SHA1 en chaîne
Répondre
Vous ne pouvez pas - SHA1 est un hachage unidirectionnel. Compte tenu de la sortie de SHA1 (X), n'est pas possible de récupérer X (au moins, non sans une recherche de force brute ou dictionary/rainbow table scan)
Une façon très simple de penser à ce sujet est d'imaginer que je vous donne un ensemble de nombres à trois chiffres à ajouter, et vous me dites les deux derniers chiffres de cette somme. Ce n'est pas possible à partir de ces deux chiffres pour moi de savoir exactement quels numéros vous avez commencé avec.
Voir aussi
pensée concernant MD5, ces questions peuvent également vous éclairer:
SHA est un algorithme de hachage. Vous pouvez comparer le hachage d'une entrée fournie par l'utilisateur avec le hachage stocké, mais vous ne pouvez pas facilement le traiter (reconstruire la chaîne d'origine à partir du hachage stocké). À moins que vous ne choisissiez de forcer ou d'utiliser des tables arc-en-ciel (toutes deux extrêmement lentes lorsqu'elles sont fournies avec une entrée suffisamment longue).
Vous ne pouvez pas - c'est le point de SHA1, mdb5, etc. La plupart d'entre eux sont à sens unique hash pour la sécurité. Si cela pouvait être inversé, toute personne ayant accès à votre base de données pourrait obtenir tous les mots de passe. Ce serait mauvais.
Au lieu de déambuler votre base de données, au lieu de hacher la tentative de mot de passe et de comparer cela à la valeur hachée dans la base de données.
c'est exactement ce que je fais, j'essayais juste – onildo
Vous pouvez vérifier si l'utilisateur a changé son mot de passe ou non en comparant les hachages, mais en termes de vérification si le mot de passe était plus long ou plus court, etc, ce qui n'est pas possible si vous utilisez SHA1. –
Si vous parlez de cela d'un point de vue pratique, abandonnez maintenant et considérez cela comme impossible. Trouver la chaîne originale est impossible (sauf par accident). La plupart du point d'un hachage cryptographiquement sécurisé est de s'assurer que vous ne pouvez pas trouver autre chaîne qui produit le même hachage soit.
Si vous êtes intéressé par la recherche d'algorithmes de hachage sécurisés: trouver une chaîne qui produira un hachage donné s'appelle une "pré-image". Si vous parvenez à le faire (avec une complexité de calcul raisonnable) pour SHA-1, vous deviendrez probablement assez célèbre parmi les chercheurs en cryptanalyse. Le meilleur "break" contre SHA-1 actuellement connu est un moyen de trouver deux chaînes d'entrée qui produisent le même hachage, mais 1) il est très coûteux en termes de calcul (pensez à un certain nombre de machines fonctionnant 24/7 pendant des mois à temps pour trouver une telle paire), et pas pour travailler pour une valeur de hachage arbitraire - il trouve un d'une classe spéciale de chaînes d'entrée pour laquelle une paire correspondante est (relativement) facile à trouver.
Vous ne pouvez pas faire cela avec SHA-1. Mais, compte tenu de ce que vous devez faire, vous pouvez essayer d'utiliser AES à la place. AES permet le cryptage et le décryptage.
Il n'est pas vraiment nécessaire pour moi de décrypter le champ, je voulais juste vérifier si c'était correct, mais j'ai oublié si je viens de me connecter, je saurais si le mot de passe était correct. – onildo
- 1. SHA1 Hash on Hex Chaîne
- 2. À partir d'une application Flex, comment chiffrer une chaîne à l'aide de SHA1 et la convertir en chaîne base64?
- 3. Inverser le mot de passe django.contrib.auth.models.User, sha1 en chaîne lisible
- 4. SHA1 JavaScript pour la mise en œuvre grande chaîne
- 5. Convertir IDispatch * en chaîne?
- 6. convertir bitset en chaîne?
- 7. Convertir NSString en chaîne
- 8. Convertir l'objet en chaîne
- 9. Convertir int en chaîne?
- 10. chaîne Convertir en carboniser
- 11. Convertir base64'd hash SHA1 à Hex hachages
- 12. asp.net Convertir une chaîne CSV en chaîne []
- 13. C# en Ruby codage sha1 base64
- 14. JavaME: Convertir chaîne en camelCase
- 15. Convertir un tableau en chaîne
- 16. Convertir un entier en chaîne
- 17. Convertir une chaîne en streaming
- 18. Convertir la chaîne en SecureString
- 19. Convertir une chaîne en variable
- 20. convertir la chaîne en int
- 21. comment convertir JSON en chaîne
- 22. convertir une chaîne en classe
- 23. Convertir une chaîne en CLLocationCoordinate2D
- 24. convertir la chaîne [] en int []
- 25. chaîne convertir en tableau multidimensionnel
- 26. Convertir la chaîne en double
- 27. Convertir la chaîne en octets
- 28. Convertir la chaîne en DateTime?
- 29. Convertir une chaîne en .net
- 30. Convertir une chaîne en Uri
duplication possible de [Décoder sha1 chaîne à la chaîne normale] (http://stackoverflow.com/questions/3492317/decode-sha1-string-to-normal-string) –