Шифрование строк с Jasypt - Java
-
26-09-2019 - |
Вопрос
Я хочу зашифровать строку, но стандартные библиотеки Java слишком сложны для меня. Поэтому я обратился к Jasypt, его довольно просто использовать и понять, однако, когда я импортирую библиотеку в Eclipse 3.6, и когда я пытаюсь шифровать строку, как «Hello» с паролем «123». Это всегда подходит к ошибке. Я не уверен, что я делаю не так, но думаю, что это также происходит, когда я использую другие библиотеки в Eclipse.
Источник
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"));
}
}
Ошибка: i.imgur.com/vbe8p.png
Eclipse Pumcle:
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
Импортированная библиотека I.imgur.com/t9am9.png.
Решение
Библиотека, которую вы импортировали, зависит от другой библиотеки, содержащей org/apache/commons/lang/exception/NestableRuntimeException
. Отказ Это находится в Apache Commons Lang Библиотека.
На самом деле, если вы скачали Jasypt из http://sourceforge.net/projects/jasypt/files/ Вы получите ZIP-файл, содержащий lib-папку с этими файлами:
- Commons-Codec-1.1.jar
- Commons-lang-2.1.jar
- Jasypt-1.6.jar.
Вы должны включить все это в вашем проекте.
Я попробовал, и ваша маленькая образец программы работает нормально (и печатает следующее)
Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq