2010-10-25 8 views
5

Je veux crypter une chaîne, mais les bibliothèques java standard sont trop compliquées pour moi. Donc je me suis tourné vers JASYPT, Son assez simple à utiliser et à comprendre, Cependant quand j'importe la bibliothèque à Eclipse 3.6 et quand j'essaye de chiffrer une chaîne comme "bonjour" avec le mot de passe "123". Il arrive toujours avec une erreur. Je ne suis pas sûr de ce que je fais mal mais je pense que cela arrive aussi lorsque j'utilise d'autres bibliothèques dans Eclipse.Cryptage de chaîne avec JASYPT - Java

Source

import org.jasypt.util.text.BasicTextEncryptor; 

public class eMain { 
static BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); 

public static void main(String[] args) { 
    System.out.println("Hello World"); 
    textEncryptor.setPassword("123"); 
    System.out.println(textEncryptor.encrypt("Hello World")); 
} 
} 

l'erreur: i.imgur.com/vBe8p.png

Eclipse CONSLE:

java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(Unknown Source) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.access$000(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at org.jasypt.util.text.BasicTextEncryptor.<init>(BasicTextEncryptor.java:67) 
at eMain.<clinit>(eMain.java:4) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 14 more 

bibliothèque importée i.imgur.com/t9AM9. png

+0

avez-vous réussi à utiliser du sel ainsi? – J888

Répondre

3

La bibliothèque que vous avez importée dépend d'un autre l bibliothèque contenant org/apache/commons/lang/exception/NestableRuntimeException. Ceci est situé dans le Apache Commons Lang library.

En fait, si vous avez téléchargé JASYPT de http://sourceforge.net/projects/jasypt/files/ vous obtiendrez un fichier zip contenant un lib-dossier avec ces fichiers:

  • commons-codec-1.1.jar
  • commons-lang-2.1 .jar
  • jasypt-1.6.jar

Vous devez inclure tous ces éléments dans votre projet.

Je l'ai essayé et votre petit exemple de programme fonctionne très bien (et imprime les suivantes)

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

+0

avez-vous une idée de la façon de l'implémenter sur Hibernate? – J888

+0

Cette question est plutôt vague. Peut-être devriez-vous jeter un coup d'œil aux types d'utilisateurs. Je vous suggère de poster une nouvelle question à ce sujet. – aioobe