idea制作exe_IDEA中使用JavaFX制作exe小工具

开发中,加密的算法都内嵌在代码里。实施人员,运维人员等没有编程能力,为提供加密后的jasypt配置项以及用于接口测试的自研加密密码,开发exe小工具,同时可以减少自研加密规则的暴露。

以我制作的Jasypt加密工具为例,效果如下

image.png

一、创建JavaFX项目

创建项目

二、IDEA引入jar包到工程,编写Jasypt类

引入jar包

public class Jasypt {

//Jasypt解密方法

public static String JasyptEncrypt(String password,String salt) {

BasicTextEncryptor textEncryptor = new BasicTextEncryptor();

//加密所需的salt(盐)

textEncryptor.setPassword(salt);

//要加密的数据

String result = textEncryptor.encrypt(password);

return result;

}

}

三、编写Main类中的start方法

创建的JavaFX工程中会自带一个main类

通过在main类的start方法中创建一个GridPane面板,可以较为简单的创建出一个小的表单

运行该main方法可以测试我们写的方法

@Override

public void start(Stage primaryStage) throws Exception{

primaryStage.setTitle("Jasypt加密工具");

//网格布局方式,创建一个GridPane面板

GridPane grid = new GridPane();

//改变grid的默认位置,默认情况下,grid的位置是在其父容器的左上方,此处父容器是Scene,现在将grid移至Scene的中间

grid.setAlignment(Pos.CENTER);

//是用来设置该网格每行和每列之间的水平间距和垂直间距的

grid.setHgap(10);

grid.setVgap(10);

//设置了环绕在该网格面板上的填充距离,这里网格默认被设为在场景容器中居中,这里的填充距离是表示网格边缘距离里面内容的距离。

// 设置内边距,传入的是一个Insets对象,该insets对象的参数是:上,左,下,右

grid.setPadding(new Insets(25, 25, 25, 25));

//原始密码

Label passLabel = new Label("原始密码:");

grid.add(passLabel, 0, 1);

//原始密码输入文本框

TextField passInput = new TextField();

grid.add(passInput, 1, 1,2,1);

passLabel = new Label("加密盐:");

grid.add(passLabel, 0, 2);

TextField saltInput = new TextField();

grid.add(saltInput, 1, 2,2,1);

passLabel = new Label("加密密码:");

grid.add(passLabel, 0, 3);

final TextArea encrytStringText = new TextArea();

encrytStringText.setMaxSize(250, 100);

encrytStringText.setWrapText(true);

encrytStringText.setEditable(false);

grid.add(encrytStringText, 1, 3,2,1);

Button encryptButton = new Button("加密");

grid.add(encryptButton, 2, 4);

//声明点击事件,点击显示文本信息

encryptButton.setOnAction(new EventHandler() {

@Override

public void handle(ActionEvent event) {

try {

String password = passInput.getText();

String salt = saltInput.getText();

String encPass = Jasypt.JasyptEncrypt(password,salt);

StringBuilder encString = new StringBuilder();

encString.append("ENC(").append(encPass).append(")");

encrytStringText.setText(encString.toString());

} catch (Exception e) {

e.printStackTrace();

}

}

});

//设置面板的大小

primaryStage.setScene(new Scene(grid, 500, 275));

primaryStage.show();

}

四、打包成exe

打包成exe教程,可以通过该方式进行JavaFX打包成exe,需要注意的是第三方jar包打到项目中

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值