Copy kode kodenya sebagai berikut:
impor java.keamanan.Kunci;
impor java.keamanan.SecureRandom;
impor java.security.spec.AlgorithmParameterSpec;
impor javax.crypto.Cipher;
impor javax.crypto.SecretKeyFactory;
impor javax.crypto.spec.DESKeySpec;
impor javax.crypto.spec.IvParameterSpec;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
kelas publik Des
{
String akhir statis publik ALGORITHM_DES = "DES/CBC/PKCS5Padding";
log Log statis pribadi = LogFactory.getLog(Des.class);
/**
* Algoritma DES, enkripsi
*
* @param string data yang akan dienkripsi
* @param key Enkripsi kunci pribadi, panjangnya tidak boleh kurang dari 8 bit
* @return Array byte terenkripsi, umumnya digunakan dalam kombinasi dengan pengkodean Base64
* @melempar pengecualian CryptException
*/
pengkodean String statis publik (kunci String, data String) memunculkan Pengecualian
{
return encode(kunci, data.getBytes());
}
/**
* Algoritma DES, enkripsi
*
* @param string data yang akan dienkripsi
* @param key Enkripsi kunci pribadi, panjangnya tidak boleh kurang dari 8 bit
* @return Array byte terenkripsi, umumnya digunakan dalam kombinasi dengan pengkodean Base64
* @melempar pengecualian CryptException
*/
pengkodean String statis publik (kunci String, byte[] data) memunculkan Pengecualian
{
mencoba
{
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//Panjang kunci tidak boleh kurang dari 8 byte
Kunci secretKey = keyFactory.generateSecret(dks);
Sandi sandi = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec);
byte[] byte = cipher.doFinal(data);
kembalikan Base64.encode(byte);
} tangkapan (Pengecualian e)
{
melempar Pengecualian baru (e);
}
}
/**
* Algoritma DES, dekripsi
*
* @param string data yang akan didekripsi
* @param key Dekripsi kunci pribadi, panjangnya tidak boleh kurang dari 8 bit
* @return array byte yang didekripsi
* @throws Pengecualian pengecualian
*/
public static byte[] decode(String key,byte[] data) memunculkan Pengecualian
{
mencoba
{
SecureRandom sr = baru SecureRandom();
DESKeySpec dks = DESKeySpec baru(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//Panjang kunci tidak boleh kurang dari 8 byte
Kunci secretKey = keyFactory.generateSecret(dks);
Sandi sandi = Cipher.getInstance(ALGORITHM_DES);
IvParameterSpec iv = new IvParameterSpec("********".getBytes());
AlgorithmParameterSpec paramSpec = iv;
cipher.init(Cipher.DECRYPT_MODE, secretKey,paramSpec);
return cipher.doFinal(data);
} tangkapan (Pengecualian e)
{
// e.printStackTrace();
melempar Pengecualian baru (e);
}
}
/**
* Dapatkan nilai yang dikodekan
* @kunci param
* @paramdata
* @kembali
* @throwsException
* @throwsException
*/
decodeValue String statis publik (kunci String, Data string) memunculkan Pengecualian
{
byte[] data;
Nilai string = nol;
datas = decode(kunci, Base64.decode(data));
nilai = String baru(data);
if (nilai.sama dengan("")){
melempar Pengecualian baru();
}
nilai kembalian;
}
}