J'utilise actuellement le cryptage MD5 pour stocker le mot de passe dans la base de données. Nous n'avions pas la fonctionnalité de réinitialisation du mot de passe avant. Mais maintenant nous la mettons en œuvre. Je ne peux donc pas décrypter MD5 et envoyer le mot de passe à l'utilisateur. Mais je peux faire s'il est crypté dans la base64.Now je suis un peu confus qui est la meilleure méthode de cryptage.
J'ai déjà fait la validation du côté du client pour un mot de passe fort (comme 8 longueur de caractère, caractères spéciaux, etc.). P>
4 Réponses :
base 64 n'est pas un mécanisme de cryptage, il s'agit d'un schéma de codage. Il est facilement inversé, ce n'est donc pas un bon choix pour protéger les données critiques. p>
L'approche commune des mots de passe est de les hacher avec quelque chose comme MD5, puis de stocker le hachage. Lorsque l'utilisateur se connecte à nouveau, HASH le mot de passe d'entrée et comparez-le sur le hachage stocké. P>
Si l'utilisateur oublie son mot de passe, vous ne devriez pas pouvoir lui dire ce qu'il est. Au lieu de cela, laissez-lui le réinitialiser à autre chose (probablement quelque chose qu'il peut se rappeler). P>
Aussi, comme @Phil Brown mentionne, MD5 n'est pas considéré comme un mécanisme de cryptage fort a>. SHA-1 serait mieux adapté à cette tâche. P>
Le codage de base 64 est généralement utilisé pour transmettre des données binaires sur un mécanisme qui permet uniquement de texte ASCII. . p>
L'approche commune pour les mots de passe oubliés est de le réinitialiser, d'envoyer à l'utilisateur le nouveau mot de passe et de les forcer à la modifier lorsqu'ils se connectent. En outre, SHA1 est un algorithme de hachage plus fort que MD5
À cet heure de mot de passe oublié, que je puisse obtenir à nouveau le mot de passe?
@vinothkumar: Vous ne le faites pas. Vous générez au hasard un mot de passe totalement nouveau pour eux - non de leur choix. De plus, une fois la réinitialisation de votre mot de passe, je envisagerais de verrouiller le compte s'il ne modifie pas leur mot de passe après une certaine période de temps, puisque le courrier électronique est envoyé en texte clair.
MD5 n'est pas un mécanisme de cryptage du tout. C'est un mécanisme de hachage.
base64 n'est pas cryptage, il s'agit d'un mécanisme de codage facilement réversible. MD5 est un hachage cryptographique à sens unique, bien que son utilisation n'est pas recommandé car il est cryptographiquement faible a >. p>
Pour vos besoins, vous voulez probablement stocker le hasch du mot de passe (mieux avec sel < / a>), utilisant probablement SHA-256 ou mieux. Lorsque les utilisateurs oublient leur mot de passe, vous générez un mot de passe d'utilisation à une fois aléatoire pour eux et les forcer à recréer un mot de passe, ou simplement à les faire faire après avoir vérifié certaines informations d'identification. P>
base64 et md5 sont pas de méthodes de cryptage em>. BASE64 est simplement une façon de coder de caractères, ce qui ne fournit absolument aucune sécurité - il est aussi bon que de stocker le mot de passe en texte brut. MD5 est une fonction de hachage, ce qui signifie qu'il est à sens unique et ne peut pas être déchiffré. P>
Le hachage est définitivement la voie à suivre. MD5 est correct, mais vous devez passer à une fonction plus sécurisée telle que SHA-256. P>
comme pour une fonctionnalité "Mot de passe oublié", jamais em> stocke le mot de passe de l'utilisateur et renvoyez-le à eux. Au lieu de cela, génère un mot de passe temporaire (aléatoire) pour qu'ils puissent se connecter et le changer. P>
La meilleure pratique consiste à stocker le hasch de mot de passe à l'aide de MD5, car vous êtes maintenant (ou même mieux SHA256). P>
Ne faites pas de mot de passe de récupération. Au lieu de cela, lorsqu'un utilisateur oublie son mot de passe, créez un nouveau mot de passe aléatoire et envoyez-le-les. Ils peuvent ensuite se connecter et définir le mot de passe sur quelque chose qu'ils préfèrent. Beaucoup plus sécurisé. P>
Veuillez lire cette question précédente + réponses: Stackoverflow.com/questions/2780198/...
Ne validez pas du côté client, sauf si vous êtes d'accord avec cette validation étant cassée. Si quelqu'un écrit un autre client à un moment donné, vous ne voulez pas qu'ils piquent des trous dans votre sécurité. Vous pouvez également faire la vérification du côté client, mais ce ne serait que pour éviter un aller-retour.
Le hachage de MD5 n'est pas aussi sécurisé que la fois, utilisez SHA1 au moins et SHA256 est (de ce que je sais) suffisamment sécurisé.
@Joakim: MD5 n'a jamais été aussi sécurisé.
@Amber en effet, mais nous savons maintenant que c'est peu sécurisé et il est largement connu comment exploiter ces vulnérabilités.
Si vous souhaitez stocker des mots de passe à l'aide de l'encodage de base64, vous pourriez aussi bien les stocker comme texte clair!
Étiquette PHP supprimée