本文簡單介紹了JCE架構的核心應用!
javax.crypto.Cipher此類為加密和解密提供密碼功能。它構成了 Java Cryptographic Extension (JCE) 架構的核心。為建立 Cipher 對象,應用程式調用 Cipher 的 getInstance
方法並將所請求轉換 的名稱傳遞給它。還可以指定提供者的名稱(可選)。
轉換 是一個字串,它描述為產生某種輸出而在給定的輸入上執行的操作(或一組操作)。轉換始終包括密碼編譯演算法的名稱(例如,DES),後面可能跟有一個反饋模式和填充方案。
package thtf.com.cn.client;
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 java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Properties;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
//JCE應用
public class MainEncrypt {
static String keyFile = "c:/key.xml";
static Properties property = getProperties();
Cipher ecipher;
Cipher dcipher;
private final String JDBCPROPERTIES_PATH = "socket_jdbc.properties";
/**
* 產生密鑰。
*
*/
public static void saveDesKey() {
try {
keyFile = property.getProperty("keyFile");
SecureRandom sr = new SecureRandom();
// 為我們選擇的DES演算法產生一個KeyGenerator對象
KeyGenerator kg = KeyGenerator.getInstance("DES");
kg.init(sr);
FileOutputStream fos = new FileOutputStream(keyFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
// 產生密鑰
SecretKey key = kg.generateKey();
oos.writeObject