Строковое шифрование с помощью 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

Другие вопросы по тегам