package net.itdos.secrit;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class Jiajie {
/**
* @param args
*/
public static void main(String[] args) {
jiami();
jiemi();
}
private static void jiami() {
try {
//執行個體個 加密對象
Cipher cipher=Cipher.getInstance("AES");
// 執行個體密鑰
SecretKey secreKey = KeyGenerator.getInstance("AES").generateKey();
//通過secreKey加密
cipher.init(Cipher.ENCRYPT_MODE, secreKey);
byte[] result = cipher.doFinal("itdoselt444".getBytes());
//把key儲存到硬碟
FileOutputStream foskey = new FileOutputStream("txx_key");
ObjectOutputStream oossecreKey = new ObjectOutputStream(foskey);
oossecreKey.writeObject(secreKey);
oossecreKey.close();
foskey.close();
//把result儲存到硬碟
FileOutputStream fosresult = new FileOutputStream("txx_data");
fosresult.write(result);
fosresult.close();
System.out.println("end");
} catch (Exception e) {
e.printStackTrace();
private static void jiemi(){
FileInputStream fiskey = new FileInputStream("txx_key");
ObjectInputStream oiskey = new ObjectInputStream(fiskey);
Key key = (Key)oiskey.readObject();
oiskey.close();
fiskey.close();
//通過secreKey解密
cipher.init(Cipher.DECRYPT_MODE, key);
FileInputStream fisresult = new FileInputStream("txx_data");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
copyStream(fisresult,baos);
byte[] result = cipher.doFinal(baos.toByteArray());
baos.close();
fisresult.close();
System.out.println(
new String(result));
private static void copyStream(InputStream fis,OutputStream fos){
byte[] buf = new byte[1024];
int len = fis.read(buf);
while (len != -1) {
fos.write(buf, 0, len);
len = fis.read(buf);
} catch (IOException e) {
// TODO Auto-generated catch block