Quelles sont les meilleures pratiques pour chiffrer les mots de passe stockés dans MySql via PhP?

Je suis à la recherche de conseils sur la façon de en toute sécurité stocker les mots de passe en MySQL à l'aide de PHP.

Donnant sur les limites de PHP lui-même, je veux en savoir plus sur le salage, le hachage et de chiffrement de ces mauvais garçons.

Évidemment, les gens vont continuer à utiliser des mots de passe faibles moins d'y être forcé de faire autrement, mais c'est la façon dont je suis le stockage qui est important pour moi. Mes mots de passe utilisateur sont beaucoup plus importantes pour moi que la base de données elle-même, et, comme telle, je veux les garder dans une telle manière qu'il sera laborieux et monotone pour n'importe quel script kiddie essayer inverse. Évidemment, avec une diligence raisonnable à peu près tout peut être vaincu, mais je ne me dérangerait pas de faire ceci est particulièrement gênant.

Il y a deux scénarios que nous recherchons.

  1. Le kiddie a une copie complète de la base de données.
  2. Le kiddie a une copie complète de PHP utilisée pour élaborer le mot de passe, et la base de données.

Tout et tous les conseils sur ce sujet est gracieusement apprécié.

Le meilleur moyen est de ne pas utiliser des mots de passe à tous. Voir InstaPaper.
Sont vos utilisateurs locaux ou sur internet?
À la fois local et internet. Je préfère ne pas dépendre des ressources de l'internet, mais je suppose que cela pourrait être une option (par exemple. prenez le sel d'un fournisseur tiers.)
La question a été répondu à près d'un millier de fois sur stackoverflow
voulais juste préciser que le premier commentaire. InstaPaper récemment abandonné leur aucun mot de passe requis de la pensée. Les mots de passe sont maintenant tenus à InstaPaper lire la suite ici blog.instapaper.com/post/2318776738

OriginalL'auteur | 2010-12-20