JSP simple mot de passe de chiffrement déchiffrement
j'ai besoin de crypter le mot de passe pour l'insérer dans une base de données.Aussi quand j'ai besoin d'un mot de passe j'ai besoin de déchiffrer cette valeur.Quelle est la manière simple de faire cela?
Remarque : Cette opération n'ont pas à être très sûr.
Merci de ne pas mettre en œuvre vos plans actuels, au lieu de cela, vous devez utiliser un MessageDigest pour accomplir cette tâche. Appliquer une fonction de hachage cryptographique de l'utilisateur mot de passe (par exemple, l'un de l'algorithme SHA-256, SHA-384 et SHA-512 [et d'autres]) et un SEL pour éviter table arc-en-ciel attaques. Enfin, pour les réinitialisations de mot de passe, il suffit de remplacer le mot de passe actuel de hachage.
Comme un exemple,
//We need a bytesToHex method first. So, from -//http://stackoverflow.com/a/9855338/2970947finalprotectedstaticchar[] hexArray ="0123456789ABCDEF".toCharArray();publicstaticString bytesToHex(byte[] bytes){char[] hexChars =newchar[bytes.length *2];int v;for(int j =0; j < bytes.length; j++){
v = bytes[j]&0xFF;
hexChars[j *2]= hexArray[v >>>4];
hexChars[j *2+1]= hexArray[v &0x0F];}returnnewString(hexChars);}//Change this to something else.privatestaticString SALT ="123456";//A password hashing method.publicstaticString hashPassword(String in){try{MessageDigest md =MessageDigest.getInstance("SHA-256");
md.update(SALT.getBytes());//<-- Prepend SALT.
md.update(in.getBytes());//md.update(SALT.getBytes()); //<-- Or, append SALT.byte[] out = md.digest();return bytesToHex(out);//<-- Return the Hex Hash.}catch(NoSuchAlgorithmException e){
e.printStackTrace();}return"";}publicstaticvoid main(String[] args){System.out.println(hashPassword("Hello"));System.out.println(hashPassword("Hello"));System.out.println(hashPassword("Hello1"));System.out.println(hashPassword("Hello2"));}
Montrant comment très différents d'un caractère en fait la résultante de hachage.
Ne devrait pas être "il suffit de remplacer le mot de passe actuel de hachage"? Oh!J'ai compris mais je n'ai pas beaucoup de temps.Donc, il y a tout code peut faire cela?J'ai essayé quelques méthodes mais ne pouvait pas le faire. Je vous remercie beaucoup.Comment décrypter ce hashvalue? Vous n'avez pas. C'est l'ensemble de point. L'utilisateur est le seul qui peut fournir leur "corriger" le mot de passe. Même si quelqu'un obtient une copie de votre mot de passe de base de données, ils ne peuvent pas déterminer un autre utilisateur de son mot de passe. L'utilisateur vous donne son mot de passe et vous de hachage de nouveau; si la valeur de hachage correspond à la valeur stockée dans la base de données c'est correct. Sinon, c'est incorrect. Pour changer le mot de passe, vérifier l'identité de l'utilisateur d'une autre façon et puis remplacez le hachage de mot de passe.
Encore une façon est d'utiliser Chiffrer classe pour crypter votre mot de passe généré de façon aléatoire keyvalue. Mais vous avez besoin de stocker les keyvalue dans votre base de données de mot de passe crypté. Comme ça,
Merci de ne pas mettre en œuvre vos plans actuels, au lieu de cela, vous devez utiliser un MessageDigest pour accomplir cette tâche. Appliquer une fonction de hachage cryptographique de l'utilisateur mot de passe (par exemple, l'un de l'algorithme SHA-256, SHA-384 et SHA-512 [et d'autres]) et un SEL pour éviter table arc-en-ciel attaques. Enfin, pour les réinitialisations de mot de passe, il suffit de remplacer le mot de passe actuel de hachage.
Comme un exemple,
Qui devrait sortie
Montrant comment très différents d'un caractère en fait la résultante de hachage.
Oh!J'ai compris mais je n'ai pas beaucoup de temps.Donc, il y a tout code peut faire cela?J'ai essayé quelques méthodes mais ne pouvait pas le faire.
Je vous remercie beaucoup.Comment décrypter ce hashvalue?
Vous n'avez pas. C'est l'ensemble de point. L'utilisateur est le seul qui peut fournir leur "corriger" le mot de passe. Même si quelqu'un obtient une copie de votre mot de passe de base de données, ils ne peuvent pas déterminer un autre utilisateur de son mot de passe.
L'utilisateur vous donne son mot de passe et vous de hachage de nouveau; si la valeur de hachage correspond à la valeur stockée dans la base de données c'est correct. Sinon, c'est incorrect. Pour changer le mot de passe, vérifier l'identité de l'utilisateur d'une autre façon et puis remplacez le hachage de mot de passe.
OriginalL'auteur Elliott Frisch
Encore une façon est d'utiliser Chiffrer classe pour crypter votre mot de passe généré de façon aléatoire
keyvalue
. Mais vous avez besoin de stocker leskeyvalue
dans votre base de données de mot de passe crypté. Comme ça,Tout déchiffrer, vous devez utiliser keyvalue et le mot de passe crypté. Comme ça,
Espère que cette aide.
OriginalL'auteur Vinoth Krishnan