Le chiffrement de chaîne avec JASYPT - Java
-
26-09-2019 - |
Question
Je veux chiffrer une chaîne, mais les bibliothèques Java standard sont trop compliquées pour moi. Alors je me suis tourné vers JASYPT, Son assez simple à utiliser et à comprendre, mais quand j'importer la bibliothèque Eclipse 3.6 et quand je tente de chiffrer une chaîne comme « Bonjour » avec le mot de passe « 123 ». Il est toujours une erreur. Je ne sais pas de quoi je fais mal, mais je pense que cela arrive aussi quand j'utiliser d'autres bibliothèques dans Eclipse.
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
La solution
La bibliothèque que vous avez importé dépend d'une autre bibliothèque contenant org/apache/commons/lang/exception/NestableRuntimeException
. Il est situé dans le Apache Commons Lang bibliothèque .
si vous avez téléchargé En fait, JASYPT de http://sourceforge.net/projects/jasypt/files / vous obtiendrez un fichier zip contenant un dossier lib 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