密钥最低128bits
public class FileEncryptionUtil {
private static final String ALGORITHM = "AES";
private static final String TRANSFORMATION = "AES";
/**
* 使用AES加密算法对文件进行加密。
*
* @param key 用于加密的密钥。.
* @param inputFiles 要加密的输入文件。
* @param outputFiles 将写入加密数据的输出文件。
* @throws Exception 如果加密过程中出现错误
*/
public static void encryptFile(String key, String inputFiles, String outputFiles) throws Exception {
File inputFile = new File(inputFiles);
File outputFile = new File(outputFiles);
Key secretKey = new SecretKeySpec(key.getBytes("UTF-8"), ALGORITHM);
Cipher cipher = Cipher.getInstance(TRANSFORMATION);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
FileInputStream inputStream = new FileInputStream(inputFile);
byte[] inputBytes = new byte[(int) inputFile.length()];
inputStream.read(inputBytes);
byte[] outputBytes = cipher.doFinal(inputBytes);
FileOutputStream outputStream = new FileOutputStream(outputFile);
outputStream.write(outputBytes);
inputStream.close();
outputStream.close();
}
/**
* 解密使用AES加密算法加密的文件。
*
* @param key 用于解密的密钥。
* @param inputFiles 要解密的输入文件。
* @param outputFiles 将写入解密数据的输出文件
* @throws Exception 如果在解密过程中出现错误。
*/
public static void decryptFile(String key, String inputFiles, String outputFiles) throws Exception {
File inputFile = new File(inputFiles);
File outputFile = new File(outputFiles);
Key secretKey = new SecretKeySpec(key.getBytes("UTF-8"), ALGORITHM);
Cipher cipher = Cipher.getInstance(TRANSFORMATION);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
FileInputStream inputStream = new FileInputStream(inputFile);
byte[] inputBytes = new byte[(int) inputFile.length()];
inputStream.read(inputBytes);
byte[] outputBytes = cipher.doFinal(inputBytes);
FileOutputStream outputStream = new FileOutputStream(outputFile);
outputStream.write(outputBytes);
inputStream.close();
outputStream.close();
}
}