admin管理员组文章数量:1639928
引入包
<!-- 一个开源的加解密算法包 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.66</version>
</dependency>
<!-- 测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
工具类
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.StandardCharsets;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.Security;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;
import java.util.Base64;
/**
* @author zkk
*/
public class Sm4Helper3 {
private static final String PADDING_MODE = "SM4/ECB/PKCS5Padding";
private static final String FILE_MODE_READ = "r";
private static final String FILE_MODE_READ_WRITE = "rw";
private static final String PBK_SHA1 = "PBKDF2WithHmacSHA1";
private static final String ALGORITHM_SM4 = "SM4";
private static final int KEY_DEFAULT_SIZE = 128;
private static final int ENCRYPT_BUFFER_SIZE = 1024;
private static final int DECRYPT_BUFFER_SIZE = 1040;
static{
try{
Security.addProvider(new BouncyCastleProvider());
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 文件加密
* @param sourceFilePath 源文件文件路径
* @param encryptFilePath 加密后文件路径
* @param seed 种子
* @throws Exception 异常
*/
public static void encryptFile(String sourceFilePath, String encryptFilePath, String seed) throws Exception {
sm4Cipher(Cipher.ENCRYPT_MODE, sourceFilePath, encryptFilePath, seed);
}
/**
* 文件解密
* @param encryptFilePath 加密文件路径
* @param targ
版权声明:本文标题:SM4算法大文件加密与字符串加密 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729292850a1194404.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论