Pergunta

Eu quero criptografar uma corda, mas as bibliotecas Java padrão são muito complicadas para mim. Então me voltei para o Jasypt, é bastante simples de usar e entender, no entanto, quando importo a biblioteca para o Eclipse 3.6 e quando tento criptografar uma string como "Hello" com a senha "123". Sempre apresenta um erro. Não tenho certeza do que estou fazendo de errado, mas acho que isso também acontece quando uso outras bibliotecas no Eclipse.

Fonte

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"));
 }
}

O erro: 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

Biblioteca importada i.imgur.com/t9am9.png

Foi útil?

Solução

A biblioteca que você importou depende de outra biblioteca que contém org/apache/commons/lang/exception/NestableRuntimeException. Isso está localizado no Biblioteca Apache Commons Lang.

De fato, se você baixou o Jasypt de http://sourceforge.net/projects/jasypt/files/ Você receberá um arquivo zip contendo um dobrador de lib com estes arquivos:

  • Commons-Codec-1.1.jar
  • Commons-Lang-2.1.jar
  • Jasypt-1.6.jar

Você deve incluir tudo isso em seu projeto.

Eu tentei e seu pequeno programa de amostra funciona bem (e imprime o seguinte)

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top