本文简单介绍了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