在使用minio的情况下,官方提供两种方案来做对象加密,分别是SSE-C、SSE-S3。但是在某些情况下我们受限于条件没法快速的通过以上方案实现加密,那么这个工具类可以帮助你,此加密过程经测试效率很不错,5MB的文件加密解密整个过程在800ms以内。
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import io.minio.MinioClient;
public class EncryptionUtil {
static final String originKeyStr = "0123456789Abc@@@"; // 必须16个字符
private static SymmetricCrypto aes;
// 加密并编码字符串
public static String encryptURLEncodeStr(String str) {
try {
if (aes == null) {
SecretKey aesKey = new SecretKeySpec(originKeyStr.getBytes(StandardCharsets.UTF_8), "AES");
byte[] key = aesKey.getEncoded();
//构建
aes = new SymmetricCrypto(SymmetricAlgorithm.AE

当不能使用Minio官方的SSE-C和SSE-S3加密方案时,此Java工具类提供了一种高效的方法进行AES加密和解密,5MB文件的加解密时间在800ms以内。它利用Hutool库进行对称加密操作,支持文件的加密上传和解密下载。
最低0.47元/天 解锁文章
1199






