qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

JAVA文件加密和解密

时间2023-09-05 11:16:19 提问来自 广东省珠海市 的网友 分类创作 浏览215
在Java中,可以使用加密算法来实现文件的加密和解密。常用的加密算法有对称加密算法和非对称加密算法。 对称加密算法使用相同的密钥进行加密和解密,常见的对称加密算法有AES、DES和3DES。下面是一个使用AES算法进行文件加密和解密的示例代码: ```java import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.security.Key; public class FileEncryption { private static final String ALGORITHM = "AES"; private static final String TRANSFORMATION = "AES"; public static void encryptFile(String inputFile, String outputFile, String key) throws Exception { doCrypto(Cipher.ENCRYPT_MODE, inputFile, outputFile, key); } public static void decryptFile(String inputFile, String outputFile, String key) throws Exception { doCrypto(Cipher.DECRYPT_MODE, inputFile, outputFile, key); } private static void doCrypto(int cipherMode, String inputFile, String outputFile, String key) throws Exception { Key secretKey = new SecretKeySpec(key.getBytes(), ALGORITHM); Cipher cipher = Cipher.getInstance(TRANSFORMATION); cipher.init(cipherMode, secretKey); try (InputStream inputStream = new FileInputStream(inputFile); OutputStream outputStream = new FileOutputStream(outputFile)) { byte[] inputBytes = new byte[(int) new File(inputFile).length()]; inputStream.read(inputBytes); byte[] outputBytes = cipher.doFinal(inputBytes); outputStream.write(outputBytes); } } public static void main(String[] args) { String inputFile = "input.txt"; String encryptedFile = "encrypted.txt"; String decryptedFile = "decrypted.txt"; String key = "ThisIsASecretKey"; try { encryptFile(inputFile, encryptedFile, key); System.out.println("File encrypted successfully."); decryptFile(encryptedFile, decryptedFile, key); System.out.println("File decrypted successfully."); } catch (Exception e) { e.printStackTrace(); } } } ``` 上述代码中,`encryptFile`方法用于加密文件,`decryptFile`方法用于解密文件。需要注意的是,密钥的长度需要符合加密算法的要求,例如AES算法的密钥长度为16字节。 使用上述代码,你可以将需要加密的文件路径传入`inputFile`参数,加密后的文件路径传入`outputFile`参数,密钥传入`key`参数,即可实现文件的加密和解密。 希望以上信息对你有帮助,如果有任何问题,请随时提问。

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 新青年如何发扬吃苦耐劳的精神 下一篇 工程资料员实习总结3000字