通过终端使用jasypt加密简单字符串
Encryption of simple string using jasypt through terminal
我正在尝试使用 jasypt 加密一个简单的字符串。当我使用 eclipse IDE 时它工作正常,但当我尝试通过终端时出现一些问题。
Output through Eclipse IDE Screenshot
下面是我使用的代码。
package com.jasypt.encryption.demo;
import org.jasypt.util.text.BasicTextEncryptor;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class BasicDemo {
public static void main(String[] args) throws IOException {
String secretkey = "home@123";
String message = "This is a confidential message. Be Careful !!";
BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
basicTextEncryptor.setPassword(secretkey);
String encrMess = basicTextEncryptor.encrypt(message);
System.out.println(encrMess);
String decrMess =basicTextEncryptor.decrypt(encrMess);
System.out.println(decrMess);
}
}
我导航到包含 pom.xml 文件的文件夹并在终端中输入以下命令
1) mvn package
2) mvn install
3) java -cp target/demo-0.0.1-SNAPSHOT.jar com.jasypt.encryption.demo.BasicDemo
我收到 BUILD SUCCESS 消息并且 jar 文件已成功创建,但是当我 运行 第 3 个命令时出现一些错误。
Error Screenshot
如果我犯了一些非常基本的错误或使用了多余的代码行,请原谅并提出一些建议,因为我是 java 的新手。
欢迎使用 Whosebug!
当你用 Maven 编译你的程序时(它实际上不是一个编译器而是一个包管理器,它也可以在幕后调用 Java 编译器)Maven 负责下载和管理你的程序的依赖项使用,在本例中为 Jasypt。
然后当您尝试使用纯 java
启动程序时,运行 您的程序所必需的依赖项信息丢失了,只是因为 Maven 不再是游戏的一部分。因此,您必须给 Java 运行time 提示在哪里可以找到 Jasypt 依赖项,就像您对演示 jar 所做的那样。在编译过程中,Maven 将 Jasypt jar 存储在您的驱动器上一个名为 local Maven repository.
的文件夹中
您现在只需将此 jar 的路径添加到您的类路径,一切都会 运行:
java -cp target/demo-0.0.1-SNAPSHOT.jar:<path to your Maven repository>/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar com.jasypt.encryption.demo.BasicDemo
(您机器上的 Jasypt 库版本可能不同。)
如果你有很多依赖项,手动将它们全部添加到类路径中会变得很麻烦。在 Exec-plugin 的帮助下,Maven 也可以为您完成这项任务。不要直接启动 java
让 Maven 为你做管道:
mvn exec:java -Dexec.mainClass="com.jasypt.encryption.demo.BasicDemo"
您还可以查看 this thread 以了解有关此插件及其选项的更多详细信息
我正在尝试使用 jasypt 加密一个简单的字符串。当我使用 eclipse IDE 时它工作正常,但当我尝试通过终端时出现一些问题。
Output through Eclipse IDE Screenshot
下面是我使用的代码。
package com.jasypt.encryption.demo;
import org.jasypt.util.text.BasicTextEncryptor;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class BasicDemo {
public static void main(String[] args) throws IOException {
String secretkey = "home@123";
String message = "This is a confidential message. Be Careful !!";
BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
basicTextEncryptor.setPassword(secretkey);
String encrMess = basicTextEncryptor.encrypt(message);
System.out.println(encrMess);
String decrMess =basicTextEncryptor.decrypt(encrMess);
System.out.println(decrMess);
}
}
我导航到包含 pom.xml 文件的文件夹并在终端中输入以下命令
1) mvn package
2) mvn install
3) java -cp target/demo-0.0.1-SNAPSHOT.jar com.jasypt.encryption.demo.BasicDemo
我收到 BUILD SUCCESS 消息并且 jar 文件已成功创建,但是当我 运行 第 3 个命令时出现一些错误。 Error Screenshot
如果我犯了一些非常基本的错误或使用了多余的代码行,请原谅并提出一些建议,因为我是 java 的新手。
欢迎使用 Whosebug!
当你用 Maven 编译你的程序时(它实际上不是一个编译器而是一个包管理器,它也可以在幕后调用 Java 编译器)Maven 负责下载和管理你的程序的依赖项使用,在本例中为 Jasypt。
然后当您尝试使用纯 java
启动程序时,运行 您的程序所必需的依赖项信息丢失了,只是因为 Maven 不再是游戏的一部分。因此,您必须给 Java 运行time 提示在哪里可以找到 Jasypt 依赖项,就像您对演示 jar 所做的那样。在编译过程中,Maven 将 Jasypt jar 存储在您的驱动器上一个名为 local Maven repository.
您现在只需将此 jar 的路径添加到您的类路径,一切都会 运行:
java -cp target/demo-0.0.1-SNAPSHOT.jar:<path to your Maven repository>/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar com.jasypt.encryption.demo.BasicDemo
(您机器上的 Jasypt 库版本可能不同。)
如果你有很多依赖项,手动将它们全部添加到类路径中会变得很麻烦。在 Exec-plugin 的帮助下,Maven 也可以为您完成这项任务。不要直接启动 java
让 Maven 为你做管道:
mvn exec:java -Dexec.mainClass="com.jasypt.encryption.demo.BasicDemo"
您还可以查看 this thread 以了解有关此插件及其选项的更多详细信息