تشفير السلسلة مع Jasypt - Java
-
26-09-2019 - |
سؤال
أريد تشفير سلسلة ، لكن مكتبات Java القياسية معقدة للغاية بالنسبة لي. لذا التفتت إلى Jasypt ، من السهل جدًا استخدامها وفهمها ، ولكن عندما أقوم باستيراد المكتبة إلى Eclipse 3.6 وعندما أحاول تشفير سلسلة مثل "Hello" مع كلمة المرور "123". يأتي دائمًا مع خطأ. لست متأكدًا مما أفعله خطأ ولكني أعتقد أنه يحدث أيضًا عندما أستخدم مكتبات أخرى في Eclipse.
مصدر
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"));
}
}
الخطأ: i.imgur.com/vbe8p.png
consle Eclipse:
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
المكتبة المستوردة i.imgur.com/t9am9.png
المحلول
تعتمد المكتبة التي قمت باستيرادها على مكتبة أخرى تحتوي org/apache/commons/lang/exception/NestableRuntimeException
. هذا يقع في مكتبة Apache Commons Lang.
في الواقع ، إذا قمت بتنزيل Jasypt من http://sourceforge.net/projects/jasypt/files/ ستحصل على ملف مضغوط يحتوي على مجلد lib مع هذه الملفات:
- العموم-كودك -11. جار
- العموم-لانج -2.1.JAR
- Jasypt -1.6.Jar
يجب عليك تضمين كل هذه في مشروعك.
لقد جربته ويعمل برنامجك الصغير بشكل جيد (ويطبع ما يلي)
Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq