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
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
インポートされたライブラリiimgur.com/t9am9.png
解決
インポートしたライブラリは、以下を含む別のライブラリに依存しています。 org/apache/commons/lang/exception/NestableRuntimeException
. 。これは、 Apache Commons Lang ライブラリ.
実際、JASYPT を次からダウンロードした場合、 http://sourceforge.net/projects/jasypt/files/ 次のファイルを含む lib フォルダーを含む zip ファイルを取得します。
- commons-codec-1.1.jar
- commons-lang-2.1.jar
- jasypt-1.6.jar
これらすべてをプロジェクトに含める必要があります.
試してみたところ、小さなサンプル プログラムは正常に動作しました (次の結果が表示されました)。
Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq
所属していません StackOverflow