From 9ebcd14878b499039a70380b0773b00b9f8dc111 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Fri, 9 Feb 2024 17:45:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(security/crypto):=20=E6=96=B0=E5=A2=9E=20D?= =?UTF-8?q?ES=E3=80=81PBEWithMD5AndDES=20=E5=AF=B9=E7=A7=B0=E5=8A=A0?= =?UTF-8?q?=E5=AF=86=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crypto/encryptor/DesEncryptor.java | 36 +++++++++++++++++++ .../encryptor/PbeWithMd5AndDesEncryptor.java | 36 +++++++++++++++++++ .../security/crypto/enums/Algorithm.java | 15 +++++--- 3 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/DesEncryptor.java create mode 100644 continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/PbeWithMd5AndDesEncryptor.java diff --git a/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/DesEncryptor.java b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/DesEncryptor.java new file mode 100644 index 00000000..ec15dd36 --- /dev/null +++ b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/DesEncryptor.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package top.charles7c.continew.starter.security.crypto.encryptor; + +import cn.hutool.crypto.symmetric.SymmetricAlgorithm; + +/** + * DES(Data Encryption Standard) 加/解密处理器 + *

+ * 一种对称加密算法,使用相同的密钥进行加密和解密。DES 使用 56 位密钥(实际上有 64 位,但有 8 位用于奇偶校验)和一系列置换和替换操作来加密数据。 + *

+ * + * @author Charles7c + * @since 1.4.0 + */ +public class DesEncryptor extends AbstractSymmetricCryptoEncryptor { + + @Override + protected SymmetricAlgorithm getAlgorithm() { + return SymmetricAlgorithm.DES; + } +} diff --git a/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/PbeWithMd5AndDesEncryptor.java b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/PbeWithMd5AndDesEncryptor.java new file mode 100644 index 00000000..cff73dea --- /dev/null +++ b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/encryptor/PbeWithMd5AndDesEncryptor.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package top.charles7c.continew.starter.security.crypto.encryptor; + +import cn.hutool.crypto.symmetric.SymmetricAlgorithm; + +/** + * PBEWithMD5AndDES(Password Based Encryption With MD5 And DES) 加/解密处理器 + *

+ * 混合加密算法,结合了 MD5 散列算法和 DES(Data Encryption Standard)加密算法 + *

+ * + * @author Charles7c + * @since 1.4.0 + */ +public class PbeWithMd5AndDesEncryptor extends AbstractSymmetricCryptoEncryptor { + + @Override + protected SymmetricAlgorithm getAlgorithm() { + return SymmetricAlgorithm.PBEWithMD5AndDES; + } +} diff --git a/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/enums/Algorithm.java b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/enums/Algorithm.java index 6eaa040e..f8c63ea0 100644 --- a/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/enums/Algorithm.java +++ b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/charles7c/continew/starter/security/crypto/enums/Algorithm.java @@ -16,10 +16,7 @@ package top.charles7c.continew.starter.security.crypto.enums; -import top.charles7c.continew.starter.security.crypto.encryptor.AesEncryptor; -import top.charles7c.continew.starter.security.crypto.encryptor.Base64Encryptor; -import top.charles7c.continew.starter.security.crypto.encryptor.IEncryptor; -import top.charles7c.continew.starter.security.crypto.encryptor.RsaEncryptor; +import top.charles7c.continew.starter.security.crypto.encryptor.*; /** * 加密/解密算法枚举 @@ -34,6 +31,16 @@ public enum Algorithm { */ AES(AesEncryptor.class), + /** + * DES + */ + DES(DesEncryptor.class), + + /** + * PBEWithMD5AndDES + */ + PBEWithMD5AndDES(PbeWithMd5AndDesEncryptor.class), + /** * RSA */