This commit is contained in:
Looly
2022-04-28 01:30:17 +08:00
parent e0ac5e9961
commit d78219c60c
248 changed files with 621 additions and 3407 deletions

View File

@@ -9,7 +9,7 @@
<parent>
<groupId>cn.hutool</groupId>
<artifactId>hutool-parent</artifactId>
<version>5.8.0.M5</version>
<version>6.0.0.M1</version>
</parent>
<artifactId>hutool-crypto</artifactId>

View File

@@ -3,7 +3,7 @@ package cn.hutool.crypto;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.AsymmetricAlgorithm;
import cn.hutool.crypto.asymmetric.RSA;

View File

@@ -5,7 +5,7 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import java.io.InputStream;

View File

@@ -1,7 +1,7 @@
package cn.hutool.crypto.asymmetric;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.crypto.BCUtil;
import cn.hutool.crypto.CryptoException;
import cn.hutool.crypto.ECKeyUtil;

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.CryptoException;
import cn.hutool.crypto.SecureUtil;

View File

@@ -5,7 +5,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.CryptoException;
import cn.hutool.crypto.SecureUtil;
@@ -22,7 +22,7 @@ import java.security.Provider;
/**
* 摘要算法<br>
* 注意:此对象实例化后为非线程安全!
*
*
* @author Looly
*
*/
@@ -40,7 +40,7 @@ public class Digester implements Serializable {
// ------------------------------------------------------------------------------------------- Constructor start
/**
* 构造
*
*
* @param algorithm 算法枚举
*/
public Digester(DigestAlgorithm algorithm) {
@@ -49,7 +49,7 @@ public class Digester implements Serializable {
/**
* 构造
*
*
* @param algorithm 算法枚举
*/
public Digester(String algorithm) {
@@ -58,7 +58,7 @@ public class Digester implements Serializable {
/**
* 构造
*
*
* @param algorithm 算法
* @param provider 算法提供者null表示JDK默认可以引入Bouncy Castle等来提供更多算法支持
* @since 4.5.1
@@ -69,7 +69,7 @@ public class Digester implements Serializable {
/**
* 构造
*
*
* @param algorithm 算法
* @param provider 算法提供者null表示JDK默认可以引入Bouncy Castle等来提供更多算法支持
* @since 4.5.1
@@ -81,7 +81,7 @@ public class Digester implements Serializable {
/**
* 初始化
*
*
* @param algorithm 算法
* @param provider 算法提供者null表示JDK默认可以引入Bouncy Castle等来提供更多算法支持
* @return Digester
@@ -99,10 +99,10 @@ public class Digester implements Serializable {
}
return this;
}
/**
* 设置加盐内容
*
*
* @param salt 盐值
* @return this
* @since 4.4.3
@@ -115,18 +115,18 @@ public class Digester implements Serializable {
/**
* 设置加盐的位置,只有盐值存在时有效<br>
* 加盐的位置指盐位于数据byte数组中的位置例如
*
*
* <pre>
* data: 0123456
* </pre>
*
*
* 则当saltPosition = 2时盐位于data的1和2中间即第二个空隙
*
*
* <pre>
* data: 01[salt]23456
* </pre>
*
*
*
*
* @param saltPosition 盐的位置
* @return this
* @since 4.4.3
@@ -138,7 +138,7 @@ public class Digester implements Serializable {
/**
* 设置重复计算摘要值次数
*
*
* @param digestCount 摘要值次数
* @return this
*/
@@ -149,7 +149,7 @@ public class Digester implements Serializable {
/**
* 重置{@link MessageDigest}
*
*
* @return this
* @since 4.5.1
*/
@@ -161,7 +161,7 @@ public class Digester implements Serializable {
// ------------------------------------------------------------------------------------------- Digest
/**
* 生成文件摘要
*
*
* @param data 被摘要数据
* @param charsetName 编码
* @return 摘要
@@ -169,10 +169,10 @@ public class Digester implements Serializable {
public byte[] digest(String data, String charsetName) {
return digest(data, CharsetUtil.charset(charsetName));
}
/**
* 生成文件摘要
*
*
* @param data 被摘要数据
* @param charset 编码
* @return 摘要
@@ -184,7 +184,7 @@ public class Digester implements Serializable {
/**
* 生成文件摘要
*
*
* @param data 被摘要数据
* @return 摘要
*/
@@ -194,7 +194,7 @@ public class Digester implements Serializable {
/**
* 生成文件摘要并转为16进制字符串
*
*
* @param data 被摘要数据
* @param charsetName 编码
* @return 摘要
@@ -202,10 +202,10 @@ public class Digester implements Serializable {
public String digestHex(String data, String charsetName) {
return digestHex(data, CharsetUtil.charset(charsetName));
}
/**
* 生成文件摘要并转为16进制字符串
*
*
* @param data 被摘要数据
* @param charset 编码
* @return 摘要
@@ -217,7 +217,7 @@ public class Digester implements Serializable {
/**
* 生成文件摘要
*
*
* @param data 被摘要数据
* @return 摘要
*/
@@ -228,7 +228,7 @@ public class Digester implements Serializable {
/**
* 生成文件摘要<br>
* 使用默认缓存大小,见 {@link IoUtil#DEFAULT_BUFFER_SIZE}
*
*
* @param file 被摘要文件
* @return 摘要bytes
* @throws CryptoException Cause by IOException
@@ -246,7 +246,7 @@ public class Digester implements Serializable {
/**
* 生成文件摘要并转为16进制字符串<br>
* 使用默认缓存大小,见 {@link IoUtil#DEFAULT_BUFFER_SIZE}
*
*
* @param file 被摘要文件
* @return 摘要
*/
@@ -256,7 +256,7 @@ public class Digester implements Serializable {
/**
* 生成摘要,考虑加盐和重复摘要次数
*
*
* @param data 数据bytes
* @return 摘要bytes
*/
@@ -284,7 +284,7 @@ public class Digester implements Serializable {
/**
* 生成摘要并转为16进制字符串<br>
*
*
* @param data 被摘要数据
* @return 摘要
*/
@@ -294,7 +294,7 @@ public class Digester implements Serializable {
/**
* 生成摘要,使用默认缓存大小,见 {@link IoUtil#DEFAULT_BUFFER_SIZE}
*
*
* @param data {@link InputStream} 数据流
* @return 摘要bytes
*/
@@ -305,7 +305,7 @@ public class Digester implements Serializable {
/**
* 生成摘要并转为16进制字符串<br>
* 使用默认缓存大小,见 {@link IoUtil#DEFAULT_BUFFER_SIZE}
*
*
* @param data 被摘要数据
* @return 摘要
*/
@@ -315,7 +315,7 @@ public class Digester implements Serializable {
/**
* 生成摘要
*
*
* @param data {@link InputStream} 数据流
* @param bufferLength 缓存长度不足1使用 {@link IoUtil#DEFAULT_BUFFER_SIZE} 做为默认值
* @return 摘要bytes
@@ -325,7 +325,7 @@ public class Digester implements Serializable {
if (bufferLength < 1) {
bufferLength = IoUtil.DEFAULT_BUFFER_SIZE;
}
byte[] result;
try {
if (ArrayUtil.isEmpty(this.salt)) {
@@ -336,14 +336,14 @@ public class Digester implements Serializable {
} catch (IOException e) {
throw new IORuntimeException(e);
}
return resetAndRepeatDigest(result);
}
/**
* 生成摘要并转为16进制字符串<br>
* 使用默认缓存大小,见 {@link IoUtil#DEFAULT_BUFFER_SIZE}
*
*
* @param data 被摘要数据
* @param bufferLength 缓存长度不足1使用 {@link IoUtil#DEFAULT_BUFFER_SIZE} 做为默认值
* @return 摘要
@@ -354,7 +354,7 @@ public class Digester implements Serializable {
/**
* 获得 {@link MessageDigest}
*
*
* @return {@link MessageDigest}
*/
public MessageDigest getDigest() {
@@ -363,7 +363,7 @@ public class Digester implements Serializable {
/**
* 获取散列长度0表示不支持此方法
*
*
* @return 散列长度0表示不支持此方法
* @since 4.5.0
*/
@@ -374,7 +374,7 @@ public class Digester implements Serializable {
// -------------------------------------------------------------------------------- Private method start
/**
* 生成摘要
*
*
* @param data {@link InputStream} 数据流
* @param bufferLength 缓存长度不足1使用 {@link IoUtil#DEFAULT_BUFFER_SIZE} 做为默认值
* @return 摘要bytes
@@ -391,7 +391,7 @@ public class Digester implements Serializable {
/**
* 生成摘要
*
*
* @param data {@link InputStream} 数据流
* @param bufferLength 缓存长度不足1使用 {@link IoUtil#DEFAULT_BUFFER_SIZE} 做为默认值
* @return 摘要bytes
@@ -430,7 +430,7 @@ public class Digester implements Serializable {
/**
* 生成摘要
*
*
* @param datas 数据bytes
* @return 摘要bytes
* @since 4.4.3
@@ -447,7 +447,7 @@ public class Digester implements Serializable {
/**
* 重复计算摘要,取决于{@link #digestCount} 值<br>
* 每次计算摘要前都会重置{@link #digest}
*
*
* @param digestData 第一次摘要过的数据
* @return 摘要
*/

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.CryptoException;

View File

@@ -1,6 +1,6 @@
package cn.hutool.crypto.symmetric;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.crypto.KeyUtil;
import javax.crypto.SecretKey;

View File

@@ -2,7 +2,7 @@ package cn.hutool.crypto.symmetric;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.CryptoException;
import cn.hutool.crypto.SecureUtil;

View File

@@ -5,7 +5,7 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Opt;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.CipherMode;

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import java.io.InputStream;

View File

@@ -1,10 +1,9 @@
package cn.hutool.crypto.test.asymmetric;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.KeyUtil;
@@ -12,8 +11,6 @@ import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.AsymmetricAlgorithm;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.crypto.asymmetric.Sign;
import cn.hutool.crypto.asymmetric.SignAlgorithm;
import org.junit.Assert;
import org.junit.Test;

View File

@@ -2,7 +2,7 @@ package cn.hutool.crypto.test.asymmetric;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.ECKeyUtil;
import cn.hutool.crypto.KeyUtil;

View File

@@ -1,7 +1,7 @@
package cn.hutool.crypto.test.symmetric;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.KeyUtil;
import cn.hutool.crypto.Mode;