java 文件加密解密
2014-04-29 11:23
344 查看
package com.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import javax.crypto.Cipher; public class RSAEncrypt { static KeyPairGenerator keyPairGen; static KeyPair keyPair; static RSAPrivateKey privateKey; static RSAPublicKey publicKey; static { try { keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(512); keyPair = keyPairGen.generateKeyPair(); // Generate keys privateKey = (RSAPrivateKey) keyPair.getPrivate(); publicKey = (RSAPublicKey) keyPair.getPublic(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { RSAEncrypt encrypt = new RSAEncrypt(); File file = new File("C:\\Users\\张洋\\Desktop\\logo1.png"); File newFile = new File("C:\\Users\\张洋\\Desktop\\logo已加密"); encrypt.encryptFile(encrypt, file, newFile); File file1 = new File("C:\\Users\\张洋\\Desktop\\logo已加密"); File newFile1 = new File("C:\\Users\\张洋\\Desktop\\logo已解密.png"); encrypt.decryptFile(encrypt, file1, newFile1); } public void encryptFile(RSAEncrypt encrypt, File file, File newFile) { try { InputStream is = new FileInputStream(file); OutputStream os = new FileOutputStream(newFile); byte[] bytes = new byte[53]; while (is.read(bytes) > 0) { byte[] e = encrypt.encrypt(RSAEncrypt.publicKey, bytes); bytes = new byte[53]; os.write(e, 0, e.length); } os.close(); is.close(); System.out.println("write success"); } catch (Exception e) { e.printStackTrace(); } } public void decryptFile(RSAEncrypt encrypt, File file, File newFile) { try { InputStream is = new FileInputStream(file); OutputStream os = new FileOutputStream(newFile); byte[] bytes1 = new byte[64]; while (is.read(bytes1) > 0) { byte[] de = encrypt.decrypt(RSAEncrypt.privateKey, bytes1); bytes1 = new byte[64]; os.write(de, 0, de.length); } os.close(); is.close(); System.out.println("write success"); } catch (Exception e) { e.printStackTrace(); } } /** */ /** * * Encrypt String. * * * @return byte[] */ protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj) { if (publicKey != null) { try { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(obj); } catch (Exception e) { e.printStackTrace(); } } return null; } /** */ /** * * Basic decrypt method * * * @return byte[] */ protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) { if (privateKey != null) { try { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(obj); } catch (Exception e) { e.printStackTrace(); } } return null; } }
相关文章推荐
- Java探索之Thread+IO文件的加密解密代码实例
- java 文件加密解密
- JAVA文件加密与解密
- java处理加密文件---RSA加密和解密
- Java数字证书对文件/加密/解密/签名/校验签名
- java实现文件加密与解密
- java代码实现对文件的base64加密解密
- Java数字证书对文件、加密、解密、签名、校验签名(一)
- Java应用开发:文件加密解密
- java 实现文件内容的加密和解密
- JAVA文件加密解密
- java处理加密文件---RSA加密和解密
- Java数字证书对文件、加密、解密、签名、校验签名(二)
- java base64加密文件 及解密到文件
- Java实现文件的加密解密功能示例
- 使用AES算法对文件进行加密/解密的操作(JAVA)
- java spring中对properties属性文件加密及其解密
- java中使用异或的方式对文件进行加密解密
- java文件预览及加密解密的部分问题及解决方案
- Java 加密解密zip文件(亲测有效,附源码和jar包)