Comment puis-je générer un SEL en Java pour les Salés-de Hachage?

J'ai été en regardant autour et la réponse la plus exacte est : Comment générer aléatoirement une chaîne alphanumérique?

Je veux suivre ce flux de travail en fonction de ce CrackStation tutoriel:

Pour Stocker un Mot de passe

  1. Générer un long aléatoire de sel à l'aide d'un CSPRNG.

  2. Ajouter le sel pour le mot de passe et de hachage avec une norme fonction de hachage cryptographique comme SHA256.

  3. Enregistrer à la fois le sel et le hachage de l'utilisateur enregistrement de base de données.

Pour Valider un Mot de passe

  1. Récupérer de l'utilisateur, le sel et le hachage de la base de données.

  2. Ajouter le sel pour le mot de passe et de hachage en utilisant la même fonction de hachage.

  3. Comparer le hash du mot de passe donné avec le hash à partir de la base de données. Si elles correspondent, le mot de passe est correct. Sinon, le mot de passe est incorrect.

Je ne sais pas comment générer un SEL. J'ai compris comment générer un hachage à l'aide de la MessageDigest. J'ai essayé d'utiliser SecureRandom mais nextByte méthode produit un brouillage des code.

Edit: je ne sais pas quelle réponse choisir, ils sont trop compliqué pour moi, j'ai décidé d'utiliser jBCrypt; jBCript est facile à utiliser, le complexe des trucs derrière les coulisses. donc, je vais laisser la communauté de voter pour la meilleure réponse.

  • Si vous voulez un moyen facile de crypter un mot de passe en java, regarde jBcrypt 🙂
  • Merci!!!! C'est ce que je vais probablement utiliser maintenant.
  • Si elle a l'air vraiment simple, mais à l'aide d'un certifié Fournisseur de Sécurité serait la bonne chose à faire.
  • Vous êtes les bienvenus 🙂 j'aime vraiment cette librairie, simple et efficace, de plus blowflish algorithme est parfaite pour le cryptage des mots de passe 😀
  • +1 pour jBcrypt. C'est bien connu et respecté. Ne pas mettre en œuvre vos propres trucs, sauf si vous savez vraiment ce que vous faites, c'est juste trop facile de désordre.
  • Les gars, Il fait tellement longtemps que je ne sais pas laquelle est la bonne plus. Les gars, vous pouvez voter, mais je ne vais pas choisir la "bonne réponse"
  • jBcrypt ressemble à une bonne bibliothèque, mais une légère correction à @NiziL propos de la langue: "hachage de mot de passe" n'est pas "chiffrement". Le chiffrement est l'endroit où vous pouvez utiliser une clé pour l'inverser et récupérer les données (comme les bases de données ou le cryptage de disque dur). jBcrypt est de hachage, pas de chiffrement, veillez à ne pas ajouter à la confusion autour de ces termes.
  • Je n'ai jamais été très bon avec les mots... et de sécurité 😛 Merci pour cette erreur !

InformationsquelleAutor Louis Hong | 2013-08-09