From 0d2cecea792c784a1b8d788a6f80ab4f4cf6577e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E9=87=8C=E4=B8=8D=E7=9F=A5=E8=BA=AB=E6=98=AF?= =?UTF-8?q?=E5=AE=A2?= Date: Mon, 6 Feb 2023 20:47:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20smc=20PasswordField=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=87=E6=8D=A2=E4=B8=BAaes=E5=8A=A0=E5=AF=86=20(#2?= =?UTF-8?q?57)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit des -> aes Signed-off-by: unknowIfGuestInDream --- .../java/com/tlcsdm/core/util/CryptoTest.java | 28 +++++++++--- .../com/tlcsdm/demo/ControlsFXSample.java | 8 ++-- .../java/com/tlcsdm/frame/SampleBase.java | 45 ++++++++----------- 3 files changed, 44 insertions(+), 37 deletions(-) diff --git a/core/src/test/java/com/tlcsdm/core/util/CryptoTest.java b/core/src/test/java/com/tlcsdm/core/util/CryptoTest.java index aa0003a97..2f5a4bb6b 100644 --- a/core/src/test/java/com/tlcsdm/core/util/CryptoTest.java +++ b/core/src/test/java/com/tlcsdm/core/util/CryptoTest.java @@ -1,16 +1,16 @@ package com.tlcsdm.core.util; -import java.security.SecureRandom; - -import javax.crypto.SecretKey; - -import org.junit.jupiter.api.Test; - import cn.hutool.core.util.RandomUtil; import cn.hutool.crypto.KeyUtil; +import cn.hutool.crypto.Mode; +import cn.hutool.crypto.Padding; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.symmetric.AES; import cn.hutool.crypto.symmetric.DES; +import org.junit.jupiter.api.Test; + +import javax.crypto.SecretKey; +import java.security.SecureRandom; /** * @author: unknowIfGuestInDream @@ -24,7 +24,7 @@ public void md5() { } @Test - public void aes() { + public void aes1() { final SecureRandom random = RandomUtil.getSecureRandom("123456".getBytes()); final SecretKey secretKey = KeyUtil.generateKey("AES", 128, random); @@ -50,4 +50,18 @@ public void des() { System.out.println(result); } + /** + * aes + */ + @Test + public void aes() { +// AES aes = new AES(Mode.valueOf(Mode.ECB.name()), Padding.PKCS5Padding, +// HexUtil.decodeHex("0102030405060708090a0b0c0d0e0f10")); + AES aes = new AES(Mode.ECB, Padding.PKCS5Padding, + "3f4eefd3525675154a5e3a0183d8087b".getBytes()); + String encryptStr = aes.encryptHex("16c5"); + System.out.println(encryptStr); + System.out.println(aes.decryptStr(encryptStr)); + } + } diff --git a/demo/src/main/java/com/tlcsdm/demo/ControlsFXSample.java b/demo/src/main/java/com/tlcsdm/demo/ControlsFXSample.java index c874d11dc..bf7a1697e 100644 --- a/demo/src/main/java/com/tlcsdm/demo/ControlsFXSample.java +++ b/demo/src/main/java/com/tlcsdm/demo/ControlsFXSample.java @@ -1,13 +1,13 @@ package com.tlcsdm.demo; +import com.tlcsdm.demo.samples.Utils; +import com.tlcsdm.frame.SampleBase; + import java.io.IOException; import java.io.InputStream; import java.util.jar.Attributes; import java.util.jar.Manifest; -import com.tlcsdm.demo.samples.Utils; -import com.tlcsdm.frame.SampleBase; - public abstract class ControlsFXSample extends SampleBase { // 项目信息 @@ -60,7 +60,7 @@ public String getControlStylesheetURL() { @Override protected void initializeUserData() { - // do nothing + // Do nothing } /** diff --git a/frame/src/main/java/com/tlcsdm/frame/SampleBase.java b/frame/src/main/java/com/tlcsdm/frame/SampleBase.java index 0dc0e240f..c294d8570 100644 --- a/frame/src/main/java/com/tlcsdm/frame/SampleBase.java +++ b/frame/src/main/java/com/tlcsdm/frame/SampleBase.java @@ -26,31 +26,17 @@ */ package com.tlcsdm.frame; -import java.io.File; -import java.time.LocalDate; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Objects; -import java.util.ServiceLoader; - +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.Mode; +import cn.hutool.crypto.Padding; +import cn.hutool.crypto.symmetric.AES; import com.tlcsdm.core.javafx.util.FxXmlUtil; import com.tlcsdm.frame.util.I18nUtils; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.crypto.SecureUtil; -import cn.hutool.crypto.symmetric.DES; import javafx.application.Application; import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; -import javafx.scene.control.CheckBox; -import javafx.scene.control.DatePicker; -import javafx.scene.control.Label; -import javafx.scene.control.PasswordField; -import javafx.scene.control.ScrollPane; -import javafx.scene.control.Separator; -import javafx.scene.control.SplitPane; -import javafx.scene.control.TextInputControl; +import javafx.scene.control.*; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.text.TextFlow; @@ -58,6 +44,13 @@ import javafx.stage.FileChooser; import javafx.stage.Stage; +import java.io.File; +import java.time.LocalDate; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Objects; +import java.util.ServiceLoader; + /** * A base class for samples - it is recommended that they extend this class * rather than Application, as then the samples can be run either standalone or @@ -160,8 +153,8 @@ protected void initializeUserData() { } } else if (value instanceof PasswordField v) { if (!StrUtil.isEmpty(val)) { - DES des = SecureUtil.des(aesSeed.getBytes()); - v.setText(des.decryptStr(val)); + AES aes = new AES(Mode.ECB, Padding.PKCS5Padding, aesSeed.getBytes()); + v.setText(aes.decryptStr(val)); } } else if (value instanceof TextInputControl v) { if (!StrUtil.isEmpty(val)) { @@ -176,7 +169,7 @@ protected void initializeUserData() { } else if (value instanceof String v) { v = val; } else { - // do nothing + // Do nothing } }); } @@ -198,8 +191,8 @@ protected void bindUserData() { } else if (value instanceof DirectoryChooser v) { FxXmlUtil.set(k, v.getInitialDirectory()); } else if (value instanceof PasswordField v) { - DES des = SecureUtil.des(aesSeed.getBytes()); - FxXmlUtil.set(k, des.encryptHex(v.getText())); + AES aes = new AES(Mode.ECB, Padding.PKCS5Padding, aesSeed.getBytes()); + FxXmlUtil.set(k, aes.encryptHex(v.getText())); } else if (value instanceof TextInputControl v) { FxXmlUtil.set(k, v.getText()); } else if (value instanceof CheckBox v) { @@ -209,7 +202,7 @@ protected void bindUserData() { } else if (value instanceof String v) { FxXmlUtil.set(k, v); } else { - // do nothing + // Do nothing } }); } @@ -218,7 +211,7 @@ protected void bindUserData() { * 版本升级后初始化对用户数据的更新, 默认为不进行修改, 由各个组件自己实现 */ protected void updateForVersionUpgrade() { - // do nothing + // Do nothing } protected String getSampleXmlPrefix() {