Domanda

Voglio cifrare una stringa, ma le librerie standard di Java sono troppo complicate per me. Così mi sono girato verso JASYPT, la sua abbastanza semplice da usare e capire, tuttavia quando ho importare la libreria di Eclipse 3.6 e quando provo cifrare una stringa come "Ciao" con la password "123". Viene sempre con un errore. Non sono sicuro di quello che sto facendo male, ma penso che avviene anche quando uso altre biblioteche in Eclipse.

sorgente

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

l'errore: 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

libreria importata i.imgur.com/t9AM9.png

È stato utile?

Soluzione

La libreria è stata importata dipende da un'altra libreria che contiene org/apache/commons/lang/exception/NestableRuntimeException. Questo si trova nel Apache Commons Lang libreria .

In realtà, se si è scaricato JASYPT da http://sourceforge.net/projects/jasypt/files / si otterrà un file zip contenente un lib-cartella con i file:

  • commons-codec-1.1.jar
  • commons-lang-2.1.jar
  • jasypt-1.6.jar

È necessario includere tutti questi nel progetto .

ho provato e il vostro programma di esempio po 'funziona bene (e stampa il seguente)

  

Hello World
  v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top