package com.hphoto.util;
import java.io.IOException;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.DESKeySpec;
public class Crypto {
private static byte[] rawKeyData;
private static byte[] getRowKey() throws NoSuchAlgorithmException{
SecureRandom sr = new SecureRandom();
// Ϊ����ѡ���DES�㷨����һ��KeyGenerator����
KeyGenerator kg = KeyGenerator.getInstance ("DES");
kg.init(sr);
// ������Կ
SecretKey key = kg.generateKey();
return key.getEncoded ();
}
public String Encrypt(String value) throws Exception{
SecureRandom sr = new SecureRandom();
//��ԭʼ��Կ���ݴ���DESKeySpec����
DESKeySpec dks = new DESKeySpec(getRowKey());
// ����һ����Կ������Ȼ��������DESKeySpecת����Secret Key����
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret( dks );
// Cipher����ʵ����ɼ��ܲ���
Cipher cipher = Cipher.getInstance("DES");
//����Կ��ʼ��Cipher����
cipher.init( Cipher.ENCRYPT_MODE, key, sr );
//ͨ�������ļ���ȡ��Ҫ���ܵ�����
//ִ�м��ܲ���
byte[] encryptedClassData = cipher.doFinal(value.getBytes("UTF8"));
return new String(encryptedClassData,"UTF8");
}
public String Decrypt(String value) throws Exception{
//����һ�������ε������Դ
SecureRandom sr = new SecureRandom();
// ����һ��DESKeySpec����
DESKeySpec dks = new DESKeySpec(getRowKey());
// ����һ����Կ������Ȼ��������DESKeySpec����ת����Secret Key����
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret( dks );
//Cipher����ʵ����ɽ��ܲ���
Cipher cipher = Cipher.getInstance("DES");
//����Կ��ʼ��Cipher����
cipher.init(Cipher.DECRYPT_MODE, key, sr);
//ִ�н��ܲ���
byte[] decryptedData = cipher.doFinal(value.getBytes("UTF8"));
return new String(decryptedData,"UTF8");
}
}