package com.qianwen.core.tool.utils; import java.util.Objects; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import org.springframework.lang.Nullable; /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/utils/DesUtil.class */ public class DesUtil { public static final String DES_ALGORITHM = "DES"; public static String genDesKey() { return StringUtil.random(16); } public static String encryptToHex(byte[] data, String password) { return HexUtil.encodeToString(encrypt(data, password)); } @Nullable public static String encryptToHex(@Nullable String data, String password) { if (StringUtil.isBlank(data)) { return null; } byte[] dataBytes = data.getBytes(Charsets.UTF_8); return encryptToHex(dataBytes, password); } @Nullable public static String decryptFormHex(@Nullable String data, String password) { if (StringUtil.isBlank(data)) { return null; } byte[] hexBytes = HexUtil.decode(data); return new String(decrypt(hexBytes, password), Charsets.UTF_8); } public static String encryptToBase64(byte[] data, String password) { return Base64Util.encodeToString(encrypt(data, password)); } @Nullable public static String encryptToBase64(@Nullable String data, String password) { if (StringUtil.isBlank(data)) { return null; } byte[] dataBytes = data.getBytes(Charsets.UTF_8); return encryptToBase64(dataBytes, password); } public static byte[] decryptFormBase64(byte[] data, String password) { byte[] dataBytes = Base64Util.decode(data); return decrypt(dataBytes, password); } @Nullable public static String decryptFormBase64(@Nullable String data, String password) { if (StringUtil.isBlank(data)) { return null; } byte[] dataBytes = Base64Util.decodeFromString(data); return new String(decrypt(dataBytes, password), Charsets.UTF_8); } public static byte[] encrypt(byte[] data, byte[] desKey) { return des(data, desKey, 1); } public static byte[] encrypt(byte[] data, String desKey) { return encrypt(data, ((String) Objects.requireNonNull(desKey)).getBytes(Charsets.UTF_8)); } public static byte[] decrypt(byte[] data, byte[] desKey) { return des(data, desKey, 2); } public static byte[] decrypt(byte[] data, String desKey) { return decrypt(data, ((String) Objects.requireNonNull(desKey)).getBytes(Charsets.UTF_8)); } private static byte[] des(byte[] data, byte[] desKey, int mode) { try { SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES_ALGORITHM); Cipher cipher = Cipher.getInstance(DES_ALGORITHM); DESKeySpec desKeySpec = new DESKeySpec(desKey); cipher.init(mode, keyFactory.generateSecret(desKeySpec), Holder.SECURE_RANDOM); return cipher.doFinal(data); } catch (Exception e) { throw Exceptions.unchecked(e); } } }