jasypt / petit soucis d'encryption sha / openldap - Java - Programmation
Marsh Posté le 02-09-2010 à 14:23:50
Le problème vient du fait que tu obtiennes eeJHX4GmMXJ2v3y7OViyDSibeN8=, ça devrait être eeJHX4GmMXJ1v3y7OViyDSibeN8=
Marsh Posté le 02-09-2010 à 14:26:05
apparemment SSHA c'est du SHA-1 avec du sel (salt) donc là il te manque le sel
http://en.wikipedia.org/wiki/Salt_%28cryptography%29
apperement la doc de ta lib en parle:
http://www.jasypt.org/howtoencryptuserpasswords.html
il faudrait peut être fouiller par là
Marsh Posté le 02-09-2010 à 14:29:58
je vais essayer de piger cette page ouais.. mais je pensais que justement le PasswordEncryptor s'en chargeait ...
Marsh Posté le 02-09-2010 à 14:30:06
a priori sans salt c'est {SHA} et pas {SSHA}
Marsh Posté le 02-09-2010 à 14:39:25
R3g a écrit : a priori sans salt c'est {SHA} et pas {SSHA} |
ha merde, bien vu, si je vire un s, je peux me logger . Reste à trouver comment saler mon jasypt.
(je pensais qu'il l'était vu que la version cryptée change a chaque execution)
Marsh Posté le 02-09-2010 à 14:42:09
the real moins moins a écrit : |
Je crois comprendre qu'il suffit de mettre passwordEncryptor.setPlainDigest(false); au lieu de true, mais j'ai lu en diagonale.
Marsh Posté le 02-09-2010 à 14:44:20
rah merde oui, j'avais remis cette option à true, et la version cryptée était la meme à chaque fois; ça, et {SHA}, et je peux me logger;
Par contre avec setPlainDigest à false et {SSHA}, ça marche po
Marsh Posté le 02-09-2010 à 14:50:36
the real moins moins a écrit : rah merde oui, j'avais remis cette option à true, et la version cryptée était la meme à chaque fois; ça, et {SHA}, et je peux me logger; |
Apparemment avec l'option à false il ajoute un salt et fait plusieurs iterations de la fonction de hash. Il faudrait que tu le forces à ne faire qu'une iteration, je pense qu'il faut utiliser setConfig() : http://www.jasypt.org/api/jasypt/a [...] tions(int)
Marsh Posté le 02-09-2010 à 14:56:16
R3g a écrit : |
nope, essayé ça aussi:
Code :
|
javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
Marsh Posté le 02-09-2010 à 14:58:54
the real moins moins a écrit :
|
essayes avec setIterations(0), juste pour voir ?
Marsh Posté le 02-09-2010 à 15:01:23
Caught: java.lang.IllegalArgumentException: Number of iterations must be greater than zero
Marsh Posté le 02-09-2010 à 15:02:15
bon ben du coup je sais pas
Marsh Posté le 02-09-2010 à 15:22:16
je vais finir par recopier la classe-toute-moche-mais-qui-marche et jeter jasypt
Marsh Posté le 02-09-2010 à 16:53:43
Il semblerait que le soucis soit qu'openldap attende le salt à la fin de la chaine cryptée, et que jasypt le mette au début ... http://old.nabble.com/Bug-in-org.j [...] 21332.html
Marsh Posté le 02-09-2010 à 14:19:58
Sous-cat Java parce que c'est le langage utilisé, mais bon ...
Voilà, jusqu'il y pas longtemps, j'utilisais une classe bêtement copiée de http://www.koders.com/java/fidA192 [...] s=SHA2#L21 pour créer des users sur mon ldap; ça marche pas mal, mais ça m'emmerde de copier cette classe dans multiple projets, donc au lieu de faire ma propre lib, je suis tombé sur Jasypt (merci Souk), qui devrait faire l'affaire.
Sur mon openLdap, les userPassword sont encodés sour la forme: {SSHA}bdNbIw+tw5wbT8ibln3Zn01j0BvnrLr/u9DGxw==
Avec ce bout de code:
... j'obtiens "eeJHX4GmMXJ2v3y7OViyDSibeN8="; que je préfixe cette chaine avec "{SSHA}" ou pas, mon user peut pas s'identifier sur l'ldap; j'ai essayé deux/trois trucs sans trop piger ce que je faisais... manifestement j'y connais rien en cryptruc, donc si quelqu'un pouvait m'éclairer ou aurait une idée/piste ...
---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?