diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BCD.java b/hutool-core/src/main/java/cn/hutool/core/codec/BCD.java
deleted file mode 100644
index 026bd62ea..000000000
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BCD.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package cn.hutool.core.codec;
-
-import cn.hutool.core.lang.Assert;
-
-/**
- * BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码
- * BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行
- * see http://cuisuqiang.iteye.com/blog/1429956
- *
- * @author Looly
- */
-public class BCD {
-
- /**
- * 字符串转BCD码
- *
- * @param asc ASCII字符串
- * @return BCD
- */
- public static byte[] strToBcd(String asc) {
- Assert.notNull(asc, "ASCII must not be null!");
- int len = asc.length();
- final int mod = len % 2;
- if (mod != 0) {
- asc = "0" + asc;
- len = asc.length();
- }
- final byte[] abt;
- if (len >= 2) {
- len >>= 1;
- }
- final byte[] bbt;
- bbt = new byte[len];
- abt = asc.getBytes();
- int j;
- int k;
- for (int p = 0; p < asc.length() / 2; p++) {
- if ((abt[2 * p] >= '0') && (abt[2 * p] <= '9')) {
- j = abt[2 * p] - '0';
- } else if ((abt[2 * p] >= 'a') && (abt[2 * p] <= 'z')) {
- j = abt[2 * p] - 'a' + 0x0a;
- } else {
- j = abt[2 * p] - 'A' + 0x0a;
- }
- if ((abt[2 * p + 1] >= '0') && (abt[2 * p + 1] <= '9')) {
- k = abt[2 * p + 1] - '0';
- } else if ((abt[2 * p + 1] >= 'a') && (abt[2 * p + 1] <= 'z')) {
- k = abt[2 * p + 1] - 'a' + 0x0a;
- } else {
- k = abt[2 * p + 1] - 'A' + 0x0a;
- }
- final int a = (j << 4) + k;
- final byte b = (byte) a;
- bbt[p] = b;
- }
- return bbt;
- }
-
- /**
- * ASCII转BCD
- *
- * @param ascii ASCII byte数组
- * @return BCD
- */
- public static byte[] ascToBcd(final byte[] ascii) {
- Assert.notNull(ascii, "Ascii must be not null!");
- return ascToBcd(ascii, ascii.length);
- }
-
- /**
- * ASCII转BCD
- *
- * @param ascii ASCII byte数组
- * @param ascLength 长度
- * @return BCD
- */
- public static byte[] ascToBcd(final byte[] ascii, final int ascLength) {
- Assert.notNull(ascii, "Ascii must be not null!");
- final byte[] bcd = new byte[ascLength / 2];
- int j = 0;
- for (int i = 0; i < (ascLength + 1) / 2; i++) {
- bcd[i] = ascToBcd(ascii[j++]);
- bcd[i] = (byte) (((j >= ascLength) ? 0x00 : ascToBcd(ascii[j++])) + (bcd[i] << 4));
- }
- return bcd;
- }
-
- /**
- * BCD转ASCII字符串
- *
- * @param bytes BCD byte数组
- * @return ASCII字符串
- */
- public static String bcdToStr(final byte[] bytes) {
- Assert.notNull(bytes, "Bcd bytes must be not null!");
- final char[] temp = new char[bytes.length * 2];
- char val;
-
- for (int i = 0; i < bytes.length; i++) {
- val = (char) (((bytes[i] & 0xf0) >> 4) & 0x0f);
- temp[i * 2] = (char) (val > 9 ? val + 'A' - 10 : val + '0');
-
- val = (char) (bytes[i] & 0x0f);
- temp[i * 2 + 1] = (char) (val > 9 ? val + 'A' - 10 : val + '0');
- }
- return new String(temp);
- }
-
-
- //----------------------------------------------------------------- Private method start
-
- /**
- * 转换单个byte为BCD
- *
- * @param asc ACSII
- * @return BCD
- */
- private static byte ascToBcd(final byte asc) {
- final byte bcd;
-
- if ((asc >= '0') && (asc <= '9')) {
- bcd = (byte) (asc - '0');
- } else if ((asc >= 'A') && (asc <= 'F')) {
- bcd = (byte) (asc - 'A' + 10);
- } else if ((asc >= 'a') && (asc <= 'f')) {
- bcd = (byte) (asc - 'a' + 10);
- } else {
- bcd = (byte) (asc - 48);
- }
- return bcd;
- }
- //----------------------------------------------------------------- Private method end
-}
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base16Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base16Codec.java
similarity index 96%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base16Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base16Codec.java
index bbc8192ba..8d05d17c9 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base16Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base16Codec.java
@@ -1,5 +1,7 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
+import cn.hutool.core.codec.Decoder;
+import cn.hutool.core.codec.Encoder;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base32.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base32.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32.java
index 49894758f..ecf95cda1 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base32.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base32Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32Codec.java
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base32Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32Codec.java
index bed0fe9b7..05c5d70db 100755
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base32Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32Codec.java
@@ -1,4 +1,7 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
+
+import cn.hutool.core.codec.Decoder;
+import cn.hutool.core.codec.Encoder;
import java.util.Arrays;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base58.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base58.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58.java
index ceb4aa48c..3806dce03 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base58.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.exceptions.ValidateException;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base58Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58Codec.java
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base58Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58Codec.java
index 7d2fa7a82..0d0436d37 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base58Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58Codec.java
@@ -1,5 +1,7 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
+import cn.hutool.core.codec.Decoder;
+import cn.hutool.core.codec.Encoder;
import cn.hutool.core.text.StrUtil;
import java.util.Arrays;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base62.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base62.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62.java
index 423099f45..481ea51d8 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base62.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base62Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62Codec.java
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base62Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62Codec.java
index 2a39da925..9ee3337cb 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base62Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62Codec.java
@@ -1,5 +1,7 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
+import cn.hutool.core.codec.Decoder;
+import cn.hutool.core.codec.Encoder;
import cn.hutool.core.util.ArrayUtil;
import java.io.ByteArrayOutputStream;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base64.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64.java
index 2dd632d20..9d76558c6 100755
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base64Decoder.java b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64Decoder.java
similarity index 96%
rename from hutool-core/src/main/java/cn/hutool/core/codec/Base64Decoder.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64Decoder.java
index 47b7853c5..013308dd2 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/Base64Decoder.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64Decoder.java
@@ -1,5 +1,6 @@
-package cn.hutool.core.codec;
+package cn.hutool.core.codec.BaseN;
+import cn.hutool.core.codec.Decoder;
import cn.hutool.core.lang.mutable.MutableInt;
import cn.hutool.core.util.ArrayUtil;
@@ -10,7 +11,7 @@ import cn.hutool.core.util.ArrayUtil;
* @author looly
*
*/
-public class Base64Decoder implements Decoder{
+public class Base64Decoder implements Decoder {
public static Base64Decoder INSTANCE = new Base64Decoder();
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java b/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java
index 9506978ac..99f54ef2b 100755
--- a/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java
@@ -1,5 +1,6 @@
package cn.hutool.core.codec;
+import cn.hutool.core.codec.BaseN.Base16Codec;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java b/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
index 8363b30c6..1a1e810aa 100755
--- a/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
@@ -1,5 +1,6 @@
package cn.hutool.core.codec;
+import cn.hutool.core.codec.BaseN.Base16Codec;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.CharPool;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
index 65923ca77..78b8a83d0 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
@@ -1,6 +1,6 @@
package cn.hutool.core.convert.impl;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.AbstractConverter;
import cn.hutool.core.convert.Convert;
diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/BCDTest.java b/hutool-core/src/test/java/cn/hutool/core/codec/BCDTest.java
deleted file mode 100644
index 30fef7d4d..000000000
--- a/hutool-core/src/test/java/cn/hutool/core/codec/BCDTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.hutool.core.codec;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-public class BCDTest {
-
- @Test
- public void bcdTest(){
- final String strForTest = "123456ABCDEF";
-
- //转BCD
- final byte[] bcd = BCD.strToBcd(strForTest);
- final String str = BCD.bcdToStr(bcd);
- //解码BCD
- Assert.assertEquals(strForTest, str);
- }
-}
diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java
index fecc72f39..63a0560d1 100644
--- a/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java
+++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java
@@ -1,5 +1,6 @@
package cn.hutool.core.codec;
+import cn.hutool.core.codec.BaseN.Base32;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.text.StrUtil;
import org.junit.Assert;
diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java
index f125b6a3a..6f7d00855 100644
--- a/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java
+++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java
@@ -1,5 +1,6 @@
package cn.hutool.core.codec;
+import cn.hutool.core.codec.BaseN.Base58;
import org.junit.Assert;
import org.junit.Test;
diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java
index 50ae61bf7..b7ba61508 100644
--- a/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java
+++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java
@@ -1,5 +1,6 @@
package cn.hutool.core.codec;
+import cn.hutool.core.codec.BaseN.Base62;
import cn.hutool.core.util.RandomUtil;
import org.junit.Assert;
import org.junit.Test;
diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java
index 4423642ec..664dea589 100644
--- a/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java
+++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java
@@ -1,5 +1,6 @@
package cn.hutool.core.codec;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java
index 0e4bad619..3273677fa 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java
index 88aa086bb..1a530dafe 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java
index 62c8d2365..0f18ec68e 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.asymmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FastByteArrayOutputStream;
import cn.hutool.crypto.CipherWrapper;
import cn.hutool.crypto.CryptoException;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricDecryptor.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricDecryptor.java
index eb3eb4066..1d7c7f535 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricDecryptor.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricDecryptor.java
@@ -1,11 +1,9 @@
package cn.hutool.crypto.asymmetric;
-import cn.hutool.core.codec.BCD;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.text.StrUtil;
+import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.SecureUtil;
import java.io.InputStream;
@@ -17,7 +15,6 @@ import java.nio.charset.Charset;
* 从bytes解密
* 从Hex(16进制)解密
* 从Base64解密
- * 从BCD解密
*
*
* @author looly
@@ -82,56 +79,4 @@ public interface AsymmetricDecryptor {
default String decryptStr(final String data, final KeyType keyType) {
return decryptStr(data, keyType, CharsetUtil.UTF_8);
}
-
- /**
- * 解密BCD
- *
- * @param data 数据
- * @param keyType 密钥类型
- * @return 解密后的密文
- * @since 4.1.0
- */
- default byte[] decryptFromBcd(final String data, final KeyType keyType) {
- return decryptFromBcd(data, keyType, CharsetUtil.UTF_8);
- }
-
- /**
- * 分组解密
- *
- * @param data 数据
- * @param keyType 密钥类型
- * @param charset 加密前编码
- * @return 解密后的密文
- * @since 4.1.0
- */
- default byte[] decryptFromBcd(final String data, final KeyType keyType, final Charset charset) {
- Assert.notNull(data, "Bcd string must be not null!");
- final byte[] dataBytes = BCD.ascToBcd(StrUtil.bytes(data, charset));
- return decrypt(dataBytes, keyType);
- }
-
- /**
- * 解密为字符串,密文需为BCD格式
- *
- * @param data 数据,BCD格式
- * @param keyType 密钥类型
- * @param charset 加密前编码
- * @return 解密后的密文
- * @since 4.5.2
- */
- default String decryptStrFromBcd(final String data, final KeyType keyType, final Charset charset) {
- return StrUtil.str(decryptFromBcd(data, keyType, charset), charset);
- }
-
- /**
- * 解密为字符串,密文需为BCD格式,编码为UTF-8格式
- *
- * @param data 数据,BCD格式
- * @param keyType 密钥类型
- * @return 解密后的密文
- * @since 4.5.2
- */
- default String decryptStrFromBcd(final String data, final KeyType keyType) {
- return decryptStrFromBcd(data, keyType, CharsetUtil.UTF_8);
- }
}
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java
index 9d48937c5..0a420cee7 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java
@@ -1,11 +1,9 @@
package cn.hutool.crypto.asymmetric;
-import cn.hutool.core.codec.BCD;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
+import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.util.CharsetUtil;
-import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.text.StrUtil;
import java.io.InputStream;
@@ -17,7 +15,6 @@ import java.nio.charset.Charset;
* 加密为bytes
* 加密为Hex(16进制)
* 加密为Base64
- * 加密为BCD
*
*
* @author looly
@@ -177,29 +174,4 @@ public interface AsymmetricEncryptor {
default String encryptBase64(final InputStream data, final KeyType keyType) {
return Base64.encode(encrypt(data, keyType));
}
-
- /**
- * 分组加密
- *
- * @param data 数据
- * @param keyType 密钥类型
- * @return 加密后的密文
- * @since 4.1.0
- */
- default String encryptBcd(final String data, final KeyType keyType) {
- return encryptBcd(data, keyType, CharsetUtil.UTF_8);
- }
-
- /**
- * 分组加密
- *
- * @param data 数据
- * @param keyType 密钥类型
- * @param charset 加密前编码
- * @return 加密后的密文
- * @since 4.1.0
- */
- default String encryptBcd(final String data, final KeyType keyType, final Charset charset) {
- return BCD.bcdToStr(encrypt(data, charset, keyType));
- }
}
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java
index aba3c936c..5023289fd 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.asymmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.lang.Assert;
import cn.hutool.crypto.CryptoException;
import cn.hutool.crypto.KeyUtil;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java
index bd043850f..f0f21ce3d 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.asymmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java
index c206bf604..a30d9f133 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.digest.mac;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java
index 0e91b9c29..2e8c64f6f 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.digest.otp;
-import cn.hutool.core.codec.Base32;
+import cn.hutool.core.codec.BaseN.Base32;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java
index b46394ff5..d7207b465 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.symmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java
index 5c88f0720..3f67517d5 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.symmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java
index f5493d808..c5fc89d96 100644
--- a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java
+++ b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.asymmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.codec.HexUtil;
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java
index 60f92b02b..bf413da22 100644
--- a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java
+++ b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.asymmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java
index b9b6c54be..36c39aad4 100644
--- a/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java
+++ b/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.digest;
-import cn.hutool.core.codec.Base32;
+import cn.hutool.core.codec.BaseN.Base32;
import cn.hutool.crypto.digest.otp.HOTP;
import cn.hutool.crypto.digest.otp.TOTP;
import org.junit.Assert;
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java
index d3c313aff..0273947f1 100644
--- a/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java
+++ b/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java
@@ -1,6 +1,6 @@
package cn.hutool.crypto.symmetric;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.KeyUtil;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java
index ac1461838..975c5c54c 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java
@@ -1,6 +1,6 @@
package cn.hutool.extra.qrcode;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.swing.img.ImgUtil;
import com.google.zxing.BarcodeFormat;
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java
index 2637bfa52..cacda174b 100755
--- a/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java
+++ b/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java
@@ -1,6 +1,6 @@
package cn.hutool.extra.qrcode;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Console;
diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java
index 70e1efeb5..70681a590 100755
--- a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java
+++ b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java
@@ -1,6 +1,6 @@
package cn.hutool.http;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
diff --git a/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java b/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java
index 2890839ff..56c06b816 100755
--- a/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java
+++ b/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java
@@ -1,6 +1,6 @@
package cn.hutool.http;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;
diff --git a/hutool-http/src/test/java/cn/hutool/http/IssueI5XBCFTest.java b/hutool-http/src/test/java/cn/hutool/http/IssueI5XBCFTest.java
index 923884cc3..f41f0199a 100755
--- a/hutool-http/src/test/java/cn/hutool/http/IssueI5XBCFTest.java
+++ b/hutool-http/src/test/java/cn/hutool/http/IssueI5XBCFTest.java
@@ -12,7 +12,7 @@ public class IssueI5XBCFTest {
public void getTest() {
GlobalCompressStreamRegister.INSTANCE.register("br", BrotliInputStream.class);
- final HttpResponse s = HttpUtil.createGet("https://static-exp1.licdn.com/sc/h/br/1cp0oqz322bdprj3qd4pojqix")
+ @SuppressWarnings("resource") final HttpResponse s = HttpUtil.createGet("https://static-exp1.licdn.com/sc/h/br/1cp0oqz322bdprj3qd4pojqix")
.header(Header.ACCEPT_ENCODING, "br")
.execute();
Console.log(s.body());
diff --git a/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java b/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java
index 88c590d23..8ff46020e 100755
--- a/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java
+++ b/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java
@@ -1,6 +1,6 @@
package cn.hutool.json.jwt;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONConfig;
diff --git a/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java b/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java
index d6a36f52c..36194a5e2 100755
--- a/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java
+++ b/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java
@@ -1,6 +1,6 @@
package cn.hutool.json.jwt;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ValidateException;
diff --git a/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java b/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java
index 01389b899..993a8c06c 100755
--- a/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java
+++ b/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java
@@ -1,6 +1,6 @@
package cn.hutool.json.jwt.signers;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.crypto.asymmetric.Sign;
diff --git a/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java b/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java
index f58c4db06..ad031b020 100755
--- a/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java
+++ b/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java
@@ -1,6 +1,6 @@
package cn.hutool.swing.captcha;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
diff --git a/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java b/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java
index 15f3a596d..1ab5ab80b 100755
--- a/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java
+++ b/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java
@@ -1,6 +1,6 @@
package cn.hutool.swing.img;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;