Criptografia de string com jasypt - java
-
26-09-2019 - |
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
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