java txt文件加密
时间: 2023-10-18 11:05:51 浏览: 168
java对文件进行加密和解密操作
要加密一个txt文件,可以使用Java的加密库来实现。以下是一个简单的示例程序,用于将一个txt文件加密并写入到另一个文件中:
```java
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
public class FileEncryptor {
private static final int BUFFER_SIZE = 1024;
private static final String ALGORITHM = "AES";
private static final String TRANSFORMATION = "AES/CBC/PKCS5Padding";
public static void encrypt(File inputFile, File outputFile, String key) throws Exception {
Key secretKey = new SecretKeySpec(key.getBytes(), ALGORITHM);
Cipher cipher = Cipher.getInstance(TRANSFORMATION);
cipher.init(Cipher.ENCRYPT_MODE, secretKey, new IvParameterSpec(new byte[16]));
FileInputStream inputStream = new FileInputStream(inputFile);
FileOutputStream outputStream = new FileOutputStream(outputFile);
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
byte[] output = cipher.update(buffer, 0, bytesRead);
if (output != null) {
outputStream.write(output);
}
}
byte[] output = cipher.doFinal();
if (output != null) {
outputStream.write(output);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
public static void main(String[] args) throws Exception {
File inputFile = new File("input.txt");
File encryptedFile = new File("encrypted.txt");
String key = "mysecretkey";
encrypt(inputFile, encryptedFile, key);
System.out.println("File encrypted successfully!");
}
}
```
在此示例程序中,我们使用AES算法和CBC模式进行加密,并使用PKCS5Padding填充。我们将输入的txt文件作为输入流读取,并使用密钥对其进行加密。最后,我们将加密的数据写入到另一个文件中。
请注意,此示例程序只是一个简单的示例,仅用于说明如何使用Java加密库加密txt文件。在实际应用中,应使用更复杂的加密算法和更强大的密钥来加密文件。
阅读全文