Salinan kode adalah sebagai berikut:
/*String desede (3des) enkripsi*/
impor java.security.security;
impor javax.crypto.cipher;
impor javax.crypto.secretkey;
impor javax.crypto.spec.secretkeyspec;
impor sun.misc.base64decoder;
impor sun.misc.base64encoder;
kelas publik des3 {
algoritma string final privat = "desede";
// des, desede, blowfish
// KeyByte adalah kunci enkripsi dengan panjang 24 byte
// SRC adalah buffer data terenkripsi (sumber)
Public Static String EncryptMode (byte [] keybyte, byte [] src)
{
mencoba
{
// menghasilkan kunci
SecretKey Desktop = SecretKeyspec baru (KeyByte, algoritma);
// enkripsi
Cipher c1 = cipher.getInstance (algoritma);
c1.init (cipher.encrypt_mode, desktop);
// Mulai enkripsi
byte [] EncryptedByTeArray = C1.Dofinal (SRC);
// Setelah operasi enkripsi, konversi byte [] menjadi string base64
Base64Encoder enc = base64Encoder baru ();
return enc.encode (EncryptedByTeArray);
}
Catch (java.security.nosuchalgorithmexception e1)
{
e1.printstacktrace ();
}
Catch (javax.crypto.nosuchpaddingException E2)
{
e2.printstacktrace ();
}
Catch (java.lang.Exception E3)
{
e3.printstacktrace ();
}
kembali nol;
}
// KeyByte adalah kunci enkripsi dengan panjang 24 byte
// SRC adalah buffer terenkripsi
byte statis publik [] decryptmode (byte [] keybyte, string src)
{
mencoba {
// menghasilkan kunci
SecretKey Desktop = SecretKeyspec baru (KeyByte, algoritma);
// dekripsi
Cipher c1 = cipher.getInstance (algoritma);
c1.init (cipher.decrypt_mode, desktop);
// sebelum operasi dekripsi
Base64decoder dec = base64decoder baru ();
byte [] encryptedByTeArray = dec.decodebuffer (src);
// Operasi dekripsi mengubah string base64 menjadi byte []
return c1.dofinal (EncryptedByTeArray);
} catch (java.security.nosuchalgorithMexception e1) {
e1.printstacktrace ();
} catch (javax.crypto.nosuchpaddingException e2) {
e2.printstacktrace ();
} catch (java.lang.exception e3) {
e3.printstacktrace ();
}
kembali nol;
}
// Konversi ke string hexadecimal
public static string byte2Hex (byte [] b) {
String hs = "";
String stmp = "";
untuk (int n = 0; n <b.length; n ++) {
stmp = (java.lang.integer.tohexstring (b [n] & 0xff));
if (stmp.length () == 1)
hs = hs + "0" + stmp;
kalau tidak
HS = HS + STMP;
if (n <b.length - 1)
hs = hs + ":";
}
return hs.touppercase ();
}
public static void main (string [] args)
{
// Tambahkan algoritma keamanan baru.
Security.AddProvider (com.sun.crypto.provider.sunjce ()) baru;
byte akhir [] keybytes = {0x11, 0x22, 0x4f, 0x58, (byte) 0x88, 0x10,
0x40, 0x38, 0x28, 0x25, 0x79, 0x51, (byte) 0xcb, (byte) 0xdd,
0x55, 0x66, 0x77, 0x29, 0x74, (byte) 0x98, 0x30, 0x40, 0x36,
(byte) 0xe2};
String szsrc = "Ini adalah tes 3des. Tes";
System.out.println ("Stand Before Encryption:" + Szsrc);
String encoded = encryptMode (keybytes, szsrc.getbytes ());
System.out.println ("String terenkripsi:" + dikodekan);
byte [] srcbytes = decryptMode (keybytes, dikodekan);
System.out.println ("String Dekripsi:" + (String Baru (Srcbytes)));
}
}