小代码JAVA文件加密(DES3)

来源:互联网 发布:平价好用的粉饼知乎 编辑:程序博客网 时间:2024/06/06 10:42
package com.cit.webservice;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.OutputStream;import java.security.InvalidKeyException;import java.security.Key;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.security.Security;import javax.crypto.Cipher;import javax.crypto.CipherInputStream;import javax.crypto.CipherOutputStream;import javax.crypto.KeyGenerator;import javax.crypto.NoSuchPaddingException;public class DESCipherUtil {public static Key createKey() throws NoSuchAlgorithmException {// 创建密钥Security.insertProviderAt(new com.sun.crypto.provider.SunJCE(), 1);KeyGenerator generator = KeyGenerator.getInstance("DES");generator.init(new SecureRandom());Key key = generator.generateKey();return key;}public static Key getKey(InputStream is) {try {ObjectInputStream ois = new ObjectInputStream(is);return (Key) ois.readObject();} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}public static  Cipher  getCipher(Key key,int mode) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException{ Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); cipher.init(mode, key); System.out.println(mode); return cipher; }public static void decrypt(InputStream  is ,OutputStream os, Key key) throws IOException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException{ byte[]  buff = new byte[1024];int count = 0;CipherInputStream  cis  = new CipherInputStream(is,getCipher(key,Cipher.DECRYPT_MODE));while ((count = cis.read( buff))  >=0) {os.write( buff, 0, count);}cis.close(); os.flush(); }public static void encrypt(InputStream  is ,OutputStream os, Key key) throws IOException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException{ byte[] buff = new byte[1024];int count = 0;CipherOutputStream  cos  = new CipherOutputStream(os,getCipher(key,Cipher.ENCRYPT_MODE));while ((count = is.read(buff)) >=0) {  cos.write(buff, 0, count);} cos.flush();cos.close(); }}


 

原创粉丝点击