Md5 sel de mot de passe en php
Je sais qu'il y a des alots de questions sur ce sujet, mais j'ai vraiment besoin de demander à cet.
Aujourd'hui j'ai travaillé sur le chiffrement des mots de passe avec md5.
Donc ce que j'ai fait est de.
J'ai eu 4 sels. (ils en fonction des changements de valeurs de l'utilisateur)
- à partir de l'adresse e-mail et substr puis md5 eux
- de l'e-mail de l'id substr autres postes
- une longue chaîne, substr, et puis de le md5 c'
- une autre longue chaîne, substr, et puis de le md5 c'
Puis je md5 salt1 et 3 et le mot de passe de sel 2 et salt4
Après ce que j'ai à changer le mot de passe automatiquement à chaque fois qu'un utilisateur change son mail ou son id à se changer.
Ce que vous pensez de cela?
Ne pas rouler votre propre crypto-système. Bien testé et analysé les systèmes tels que
Vous pouvez ainsi passer les sels par l'intermédiaire d'un blender 🙂
crypt
, qui offrent également un nombre variable de tours.Vous pouvez ainsi passer les sels par l'intermédiaire d'un blender 🙂
OriginalL'auteur Kilise | 2013-01-26
Vous devez vous connecter pour publier un commentaire.
Rien.
MD5 est cassé et le mauvais.
À l'aide de la mailaddress, car le sel est une bonne idée. Mais à l'aide de md5 n'est pas. Utiliser à la place bcrypt, scrypt ou pbkdf2.
Ne pas inventer votre propre ecryption, sauf si vous savez vraiment ce que vous faites, et faites-moi confiance, vous n'avez pas
utilisation bcrypt stackoverflow.com/questions/4795385/... La question est de savoir, à quelle hauteur doit être? Si vous me demandez, si haut, que votre serveur doit 500ms-1sec pour calculer le hachage. en.wikipedia.org/wiki/Bcrypt
À l'aide de l'adresse e-mail n'est pas une bonne idée pour le salage, parce que le sel doit être unique pour CHAQUE hachage. Donc, si l'utilisateur à changer son mot de passe, un nouveau sel doit être créé.
Eh bien, j'ai déjà fait le sel de modifications lors de son adresse e-mail est à sortir du a changé N'est-ce pas tout résoudre?
Si l'utilisateur modifie son mot de passe une nouvelle table de hachage serait créé à l'aide du même sel. De Plus, un attaquant pourrait pré-créer les tables de hachage avec l'aurez deviné adresses e-mail qui pourrait être utilisé sur plusieurs sites, je suppose que c'est la cueillette nit, mais pour moi, c'est ce que la crypto est: payer une grande attention à la apparemment sans importance.
OriginalL'auteur Fabian Blechschmidt
D'abord, définissons quelques termes.
De chiffrement est lors de l'encodage d'un message de sorte qu'il ne peut pas être lu. Le chiffrement consiste à un en clair, un cipher et un clé. Il est comme un livre (le texte en clair) dans une salle fermée (cipher), qui ne peut être ouvert en utilisant un outil (une clé). Il existe de nombreux types de chiffrement, mais c'est une simple description. Le chiffrement est bidirectionnel, ce qui signifie que vous pouvez encoder et de décoder le message.
Cryptographiques de hachage est lorsque vous prenez n'importe quel type de données et de générer une taille fixe de la valeur pour elle (généralement appelé un de hachage ou un digérer). Des empreintes cryptographiques sont en sens unique, ce qui signifie que vous ne pouvez pas inverser le processus.
Un sel est une chaîne unique, ou d'un ensemble de bits, semblable à un pour l'instant (un numéro unique qui est seulement utilisé une fois). Les sels ne sont utilisés que pour rendre impossible la pour un pirate pour traiter une liste de tables de hachage. Ils ne sont pas censé être utilisé comme un secret (c'est à dire comme une clé de chiffrement). La seule raison pour laquelle les gens l'habitude de parler de hasard quand il s'agit de sels est parce qu'ils veulent générer un unique sel (si le hasard n'est pas assez grande, ils peuvent obtenir collision sels, par exemple).
Bon, maintenant, à la façon dont vous devriez hachage d'un mot de passe.
Un moyen assez sûr de hachage d'un mot de passe est tout simplement de virer de bord sur les hachage unique, sur un mot de passe, puis enregistrez le sel avec le mot de passe:
C'est un bon moyen de le faire si votre site n'a pas de récupérer des données confidentielles de ses utilisateurs.
Si vous travaillez avec des données sensibles, ou si vous voulez juste vous assurer que vous faites tout ce que vous pouvez à tout garder en sécurité, alors il existe une fonction PHP qui fait le hachage pour vous. Il est appelé
crypt()
(lire la documentation pour savoir comment elle fonctionne). Voici un exemple de comment hacher un mot de passe à l'aide de la fonction:Qui sera en toute sécurité de hachage d'un mot de passe.
La chose à réaliser est que les
crypt()
fonction est beaucoup plus sûr que tout ce que vous pouvez venir avec (sauf si vous êtes un spécialiste dans le domaine).Dans les versions récentes de PHP 5.5.0+) il y a un hachage de mot de passe API qui le rend encore plus simple de hachage d'un mot de passe.
Il y a également divers hachage bibliothèques. PHPass est une activité populaire.
crypt()
fonction. Assurez-vous de lire attentivement cette documentation avant d'utiliser la fonction si. Il fonctionne de manière un peu bizarre où le sel doit être ajouté avec différentes informations."C'est un bon moyen de le faire si votre site n'a pas de récupérer des données confidentielles de ses utilisateurs." NON, il n'est pas. Les utilisateurs de réutiliser il y a des mots de passe. Vous devez vous assurer que si vous avez de la base de données est piraté, les mots de passe ne sont pas bruteforced. La plupart des mots de passe sont construites avec un simple algorithme, y compris le nom du site (dans le meilleur des cas). Mais souvent, vous pouvez vous connecter avec le mot de passe sur twitter, facebook ou paypal!
M. Olsen: vous vous rendez compte ce
07
de votre réponse ($2y$07$
) signifie? N'est-il pas lié à "ne pas double hachage"?Il n'est pas double hachage, c'est la clé de l'étirement et le renforcement utilisé pour faire de la fissuration infaisable.
M. Olsen: "c'est la clé de l'étirement et le renforcement" --- à l'aide de quoi? Tours, qui sont en fait des boucles. Je vais même citer le manuel pour vous "Les deux chiffres du coût paramètre est le logarithme en base 2 du nombre d'itérations". Pensées?
OriginalL'auteur Sverri M. Olsen
Il est mauvais, parce qu'il utilise MD5.
MD5 est une opération très rapide. Il peut être exécuté de milliards de fois par seconde sur les cartes graphiques de matériel. Il est considéré comme une mauvaise pratique de l'utiliser pour n'importe quel mot de passe des choses.
Utilisation bcrypt. L'utilisation aléatoire de sel. La prochaine PHP API pour le hachage, la vérification et la redéfinition de mot de passe. Ce fichier include met en œuvre, pour les versions de démarrage avec PHP 5.3.7: https://github.com/ircmaxell/password_compat
Lire la documentation: il Vous suffit d'appeler
password_hash()
avec le mot de passe pour créer une nouvelle table de hachage. Vous appelezpassword_verify()
avec le mot de passe des utilisateurs et le hash stocké pour voir si elle est correcte. Vous pouvez éventuellement vérifier si la valeur de hachage doit être mis à jour parce que vous avez apporté des modifications à la configuration de hachage.Votre régime de hachage est très obscure: il est peu probable que quelqu'un pense que la façon dont vous avez créé votre hachages. Cependant, si quelqu'un a eu une copie de votre algorithme et votre mot de passe, alors qu'il serait simple d'inverser les valeurs de hachage de retour en texte brut. Comme @Sven a dit, MD5 est trop rapide pour empêcher cette attaque. Un bon régime crypto (bcrypt, etc) prend du temps de travail, de sorte que même si vos mots de passe volés (et le hachage régime est déjà connue), il serait vain de tenter de renverser les tables de hachage.
Est-il vraiment comment obscurcir le schéma est-il? Les sels sont arriver substringed ensuite hachés. puis ils se hachés avec le mot de passe dans un autre régime. Donc, il serait en sécurité. Et bien sûr, il serait simple si quelqu'un a eu une copie de l'algorithme. Corrigez-moi si je me trompe
Pourquoi s'embêter avec la création et la mise à jour de hachages et les sels de quand vous pouvez avoir le meilleur niveau de sécurité pour libre à la bibliothèque, j'ai suggéré?
OriginalL'auteur Sven
Personnellement, je ne recommande pas impliquant de l'id d'utilisateur et son adresse e-mail dans le hachage de mot de passe.
Vous pouvez traiter avec le mot de passe par:
Le sel doit être unique, aléatoire est à côté de la question; comment le sel est appliqué fait peu de différence; et double hachage peut rendre les choses MOINS sûr.
Oui en effet, mais l'utilisateur se pose au sujet de md5, personnellement, je ne recommande pas de l'utiliser, mais dans le cas où il n'a pas de PHP 5.3+ ou mcrypt installé, il peut utiliser au moins SHA1...
MD5 est dans votre réponse - qui peut être considéré comme une recommandation. Vous n'avez pas proposé autre chose lableded "mieux".
M. Olsen: vous avez dit que c'est MOINS sûr, pas moi. Vous êtes à la propagation de l'information que vous ne pouvez pas le prouver. Pourquoi pensez-vous que c'est correct? Si quelqu'un écrit quelque chose sans preuves - cela ne signifie pas que vous devriez lui faire confiance. La sécurité est une terrible précise de la chose: si quelque chose est dit, il peut être et doit être prouvé, sinon c'est une connerie.
OriginalL'auteur Plamen Nikolov
un moyen simple serait de génération aléatoire de sel pour chaque utilisateur de hachage et de votre mot de passe comme ça
De haute sécurité de hachage, vous pouvez consulter ce lien qui explique comment mettre en place PBKDF2:
http://crackstation.net/hashing-security.htm#phpsourcecode
je sais , c'était juste une réponse élémentaire de base implementatio et un lien pour une meilleure explication sur implémentation de haut niveau..
OriginalL'auteur Julien Rollin