7
votes

Quelle est la meilleure base de méthode de cryptage 64 ou MD5?

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.).


7 commentaires

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


4 Réponses :


26
votes

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.

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é.

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).

Aussi, comme @Phil Brown mentionne, MD5 n'est pas considéré comme un mécanisme de cryptage fort . SHA-1 serait mieux adapté à cette tâche.

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. .


4 commentaires

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.




7
votes

base64 et md5 sont pas de méthodes de cryptage . 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é.

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.

comme pour une fonctionnalité "Mot de passe oublié", jamais 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.


0 commentaires

1
votes

La meilleure pratique consiste à stocker le hasch de mot de passe à l'aide de MD5, car vous êtes maintenant (ou même mieux SHA256).

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é.


0 commentaires