使用JASYPT进行字符串加密 - Java

Tia*_*ian 5 java string encryption cryptography jasypt

我想加密一个字符串,但标准的java库对我来说太复杂了.所以我转向JASYPT,它非常易于使用和理解,但是当我将库导入Eclipse 3.6时,我尝试使用密码"123"加密像"Hello"这样的字符串.它总是会出现错误.我不确定我做错了什么,但我认为当我在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"));
 }
}
Run Code Online (Sandbox Code Playgroud)

错误: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
Run Code Online (Sandbox Code Playgroud)

进口图书馆i.imgur.com/t9AM9.png

aio*_*obe 4

您导入的库依赖于另一个包含org/apache/commons/lang/exception/NestableRuntimeException. 它位于Apache Commons Lang 库中。

事实上,如果您从http://sourceforge.net/projects/jasypt/files/下载 JASYPT ,您将获得一个包含 lib 文件夹的 zip 文件,其中包含以下文件:

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

您应该将所有这些都包含在您的项目中

我尝试过,你的小示例程序运行良好(并打印以下内容)

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq