Строковое шифрование с помощью JASYPT - Java
Я хочу зашифровать строку, но стандартные библиотеки Java слишком сложны для меня. Поэтому я обратился к JASYPT, его довольно просто использовать и понимать, однако, когда я импортирую библиотеку в Eclipse 3.6 и пытаюсь зашифровать строку типа "Hello" с паролем "123". Это всегда приходит с ошибкой. Я не уверен, что я делаю неправильно, но я думаю, что это также происходит, когда я использую другие библиотеки в затмении.
Источник
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 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
импортированная библиотека i.imgur.com/t9AM9.png
1 ответ
Библиотека, которую вы импортировали, зависит от другой библиотеки, содержащей org/apache/commons/lang/exception/NestableRuntimeException
, Это находится в библиотеке Apache Commons Lang.
Фактически, если вы скачали JASYPT с http://sourceforge.net/projects/jasypt/files/ вы получите zip-файл, содержащий папку lib с этими файлами:
- Обще-кодек-1.1.jar
- Обще-Ланг-2.1.jar
- jasypt-1.6.jar
Вы должны включить все это в свой проект.
Я попробовал это, и ваш маленький пример программы работает нормально (и печатает следующее)
Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq