通过终端使用Jasypt加密简单字符串

奥修·阿南德(Osho Anand):

我正在尝试使用jasypt加密一个简单的字符串。当我使用eclipse IDE时,它可以正常工作,但是在尝试通过终端时却出现了一些问题。

通过Eclipse IDE输出的屏幕截图

下面是我使用的代码。

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文件已成功创建,但是运行3rd命令时出现一些错误。错误截图

如果我犯了一些非常基本的错误或由于我是Java新手而使用了多余的代码行,请原谅并提出一些建议。

werner:

欢迎来到StackOverflow!

当您使用Maven编译程序时(实际上这不是编译器,而是可以在后台调用Java编译器的程序包管理器),Maven负责下载和管理程序使用的依赖项,在这种情况下为Jasypt。

然后,当您尝试以简单的方式启动程序时,java有关运行程序所必需的依赖关系的信息就会丢失,只是因为Maven不再是游戏的一部分。因此,您必须给Java运行时一个提示,以在其中找到Jasypt依赖项,就像使用demo-jar一样。在编译过程中,Maven将Jasypt jar存储在驱动器上的本地Maven存储库文件夹中

现在,您只需将这个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"

您还可以检查此线程以获取有关此插件及其选项的更多详细信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章