Je souhaite crypter le mot de passe dans JQuery et le décrypter dans les servlets. S'il vous plaît dites-moi quel algorithme dois-je utiliser et comment mettre en œuvre cette chose.Chiffrement du mot de passe
Répondre
Un simple spot de googling aurait obtenu le answer. Les algorithmes disponibles semblent être Blowfish, SHA et Rc4. Si vous voulez décrypter blowfish serait le chemin à parcourir. Pour les ensembles de données plus petits, vous pouvez utiliser rc4.
Pour un exemple pratique, regardez comment Yahoo fait ses logins. Le formulaire de connexion a un champ caché qui agit comme le sel appelé ".challenge", ceci est incorporé dans le hachage comme suit: fullhash=MD5(MD5(passwd)+challenge)
SHA n'est pas le cryptage mais le hachage, donc vous ne pouvez pas l'utiliser. Blowfish, AES, RC4, tripleDES sont les algorithmes de cryptage les plus courants – Henri
@Henri: Je préfère hacher un mot de passe que crypter en termes de pages Web. – Zed
@Henri: Je ne faisais que commenter les plugins disponibles pour Jquery et @Zed oui hash est le chemin à parcourir. L'OP pourrait simplement vouloir être capable de récupérer les mots de passe. – whatnick
Ceci est un problème de chiffrement classique. Les hachages à sens unique décrits par whatnick fonctionneront mais il y a des problèmes de sécurité. Notamment, un attaquant peut effectuer une attaque de rejeu puisque le hachage ne peut pas être salé, ce qui signifie que l'utilisateur peut seulement envoyer le hash correspondant à l'hast stocké dans la base de données. En d'autres termes, c'est presque la même chose que d'envoyer le mot de passe en texte brut.
La seule façon de le faire correctement est avec un chiffrement de clé publique non symétrique tel que RSA. J'ai vu un Javascript implementation here. Je dirais que c'est plus compliqué que nécessaire et que faire une connexion sécurisée via SSL est probablement la chose la plus sûre et la plus facile à long terme.
Vous souhaitez utiliser HMAC. Fondamentalement, vous envoyez 2 sels au client. Vous stockez dans votre base de données
md5(salt + pwd)
vous envoyer un salt2 unique et le sel db à l'utilisateur final, qui retourne
md5(salt2 + md5(salt + pwd))
puis vous comparez à ce même côté serveur d'opération .
Tant que vous faites varier le sel envoyé et n'acceptez pas les anciens, il est à peu près aussi sûr que vous obtiendrez sans SSL. Vous ne voulez certainement pas essayer d'utiliser AES ou RSA quelque chose de similaire.
Si vous n'aimez pas md5, utilisez un autre algorithme de hachage de votre choix.
En ce qui concerne la façon de la mettre en œuvre, les choses ont évolué depuis la question a été soulevée et il semble que CryptoJS devrait le rendre facile:
http://code.google.com/p/crypto-js/
NOTE - Je n'ai pas utilisé encore!
- 1. Chiffrement de mot de passe Acegi
- 2. L'utilisation de MD5 pour générer une clé de chiffrement à partir du mot de passe?
- 3. Cryptage du mot de passe
- 4. Chiffrement/déchiffrement d'un mot de passe SMTP dans une application client/serveur
- 5. Passwordplate-forme de vérification du mot de passe
- 6. Masquage du mot de passe de l'utilisateur en HTML Webforms
- 7. Récupération du mot de passe lorsque le mot de passe est enregistré en tant que valeur de hachage
- 8. Log SQL Server Modification du mot de passe
- 9. Comment désactiver l'expiration du mot de passe Oracle?
- 10. Vérification du mot de passe dans le dojo
- 11. Obtenir le mot de passe du compte ASPNET
- 12. Modification du mot de passe utilisateur via l'application .net CF
- 13. Delphi InputBox pour la saisie du mot de passe?
- 14. Démarrage du service en tant qu'utilisateur sans mot de passe
- 15. Union Platform: Sécurisation du mot de passe administrateur
- 16. Chiffrer/déchiffrer l'utilisation du mot de passe dans un MembershipProvider personnalisé?
- 17. Formulaires de mot de passe multiples + complétion de mot de passe
- 18. Cryptage Python: cryptage du mot de passe à l'aide de la clé publique PGP
- 19. Entrez le mot de passe plusieurs fois
- 20. Changement de mot de passe de Sharepoint
- 21. DirectoryServices.AccountManagement mot de passe « vieux » valide encore après le mot de passe changement
- 22. Firefox autofilling nom d'utilisateur/mot de passe
- 23. Protéger le mot de passe intégré
- 24. récupération de mot de passe pour drupal
- 25. Effacer le mot de passe Eclipse Subversion
- 26. Joomla sel amélioré mot de passe
- 27. SharePoint mémorisant le mot de passe modifié
- 28. Mot de passe protéger les flux ATOM
- 29. Récupérer le mot de passe DNN
- 30. LD iisadmpwd - changement expiré mot de passe
Idéalement, vous devez utiliser uniquement un cryptage unidirectionnel pour les mots de passe. En d'autres termes, ne les décryptez jamais. – Rahul
Ce n'est pas vraiment le cryptage que vous utilisez avec les mots de passe mais le hachage. – whatnick
@Rahul et whatnick: vrai, mais vous devriez le faire sur le serveur, sinon c'est comme créer des mots de passe aléatoires, et les transférer en texte brut sur le fil. –