2010-10-25 8 views
5

Chcę zaszyfrować ciąg znaków, ale standardowe biblioteki java są dla mnie zbyt skomplikowane. Więc zwróciłem się do JASYPT, jest to całkiem proste w użyciu i zrozumienie, jednak kiedy zaimportuję bibliotekę do Eclipse 3.6 i kiedy spróbuję zaszyfrować ciąg znaków typu "Hello" z hasłem "123". Zawsze pojawia się błąd. Nie jestem pewien, co robię źle, ale myślę, że to również się dzieje, gdy korzystam z innych bibliotek w Eclipse.Szyfrowanie łańcuchów za pomocą JASYPT - Java

Źródło

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

błąd: 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 

importowana biblioteka i.imgur.com/t9AM9. png

+0

udało ci się użyć soli, jak również? – J888

Odpowiedz

3

Zaimportowana biblioteka zależy od innej l ibrary zawierające org/apache/commons/lang/exception/NestableRuntimeException. Znajduje się on w Apache Commons Lang library.

W rzeczywistości, jeśli pobranych JASYPT z http://sourceforge.net/projects/jasypt/files/ dostaniesz plik zip zawierający lib-folder z tymi plikami:

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

powinien zawierać wszystkie z nich w swoim projekcie.

Próbowałem to i twój mały przykładowy program działa dobrze (i drukuje następujące)

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

+0

Czy masz pojęcie, jak zaimplementować go również w hibernacji? – J888

+0

To pytanie jest niejasne. Być może powinieneś rzucić okiem na typy użytkowników. Proponuję opublikować nowe pytanie dotyczące tego. – aioobe