2010-10-25 37 views
5

Tôi muốn mã hóa chuỗi, nhưng thư viện java chuẩn quá phức tạp đối với tôi. Vì vậy, tôi đã chuyển sang JASYPT, nó khá đơn giản để sử dụng và hiểu, Tuy nhiên khi tôi nhập thư viện vào Eclipse 3.6 và khi tôi thử mã hóa một chuỗi như "Hello" với mật khẩu "123". Nó luôn luôn đi kèm với một lỗi. Tôi không chắc chắn những gì im làm sai, nhưng tôi nghĩ rằng nó cũng sẽ xảy ra khi tôi sử dụng các thư viện khác trong nhật thực.Mã hóa chuỗi bằng JASYPT - Java

Nguồn

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ỗi: 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 

thư viện nhập khẩu i.imgur.com/t9AM9. png

+0

bạn đã quản lý để sử dụng muối không? – J888

Trả lời

3

Thư viện bạn đã nhập phụ thuộc vào thư viện khác ibrary chứa org/apache/commons/lang/exception/NestableRuntimeException. Địa chỉ này nằm ở số Apache Commons Lang library.

Trong thực tế, nếu bạn đã tải về từ JASYPT http://sourceforge.net/projects/jasypt/files/ bạn sẽ nhận được một file zip có chứa một lib thư mục với những tập tin này:

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

bạn nên bao gồm tất cả các trong dự án của bạn.

Tôi đã thử nó và chương trình mẫu nhỏ của bạn hoạt động tốt (và in sau)

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

+0

bạn có bất kỳ ý tưởng làm thế nào để thực hiện nó trên hibernate là tốt? – J888

+0

Câu hỏi đó là mơ hồ. Có lẽ bạn nên xem xét các loại người dùng. Tôi đề nghị bạn đăng một câu hỏi mới về vấn đề này. – aioobe