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包打到项目中

你可能感兴趣的:(IDEA中使用JavaFX制作exe小工具)