随笔:Java对Excel等文件进行加密、解密
随笔:Java对Excel等⽂件进⾏加密、解密
背景:和同⾏讨论时提起对Excel等⽂件进⾏保存时,如何⽂件泄露后数据被直接看到,讨论了许多种⽅法,分割存储,打包⽂件压缩后加密,对⽂件加密等,于是了解了⼀下Java这⽅⾯的知识,写了⼀个对⽂件加密的⼯具类
package crypto.CipherUtils;
pto.Cipher;
pto.KeyGenerator;
pto.SecretKey;
pto.spec.SecretKeySpec;
如何给文件加密import java.io.*;
import java.security.SecureRandom;
/**
* @description:
* @author: hinotoyk
* @create: 2020-06-25 20:44
**/
public enum EncryptUtils {
ENCRYPT_UTILS;
/**
* 密钥算法
*/
private static final String ALGORITHM = "AES";
/**
* 加解密算法/⼯作模式/填充⽅式
*/
private static final String ALGORITHM_STR = "AES/ECB/PKCS5Padding";
private static final String SECRET_KEY = "hinotoyk";
public void encrypt(File srcFile,File destFile) throws Exception {
//初始化Cipher,设置是加密Model
Cipher cipher = initCipher(Cipher.ENCRYPT_MODE);
byte[] srcByte = cipher.doFinal(fileToByteArr(srcFile));
byteArrToFile(srcByte,destFile);
}
public void decrypt(File srcFile,File destFile) throws Exception {
/
/初始化Cipher,设置是解密Model
Cipher cipher = initCipher(Cipher.DECRYPT_MODE);
byte[] srcByte = cipher.doFinal(fileToByteArr(srcFile));
byteArrToFile(srcByte,destFile);
}
/***
*  ENCRYPT_MODE = 1;加密
*  DECRYPT_MODE = 2;解密
* @param model Cipher的常量,指定Cipher的⼯作模式
*/
private Cipher initCipher(int model) throws Exception{
/
/获得AES算法加密的密钥⽣成
KeyGenerator keyGenerator = Instance(ALGORITHM);
//初始化密钥⽣成器,指定密钥长度为128,指定随机源的种⼦为指定的密钥SECRET_KEY
keyGenerator.init(128, new SecureRandom(Bytes()));
SecretKey secretKey = ateKey();
//⽤于构建秘密密钥规范,以与provider⽆关的⽅式指定⼀个密钥
SecretKeySpec secretKeySpec = new Encoded(), ALGORITHM);
Cipher cipher = Instance(ALGORITHM);
cipher.init(model,secretKeySpec);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。