Die Codekopie lautet wie folgt:
/*String Desede (3DES) Verschlüsselung*/
Java.Security.Security importieren;
importieren javax.crypto.cipher;
importieren javax.crypto.secretkey;
importieren javax.crypto.spec.secretkeyspec;
import sun.misc.base64Decoder;
import sun.misc.base64Encoder;
öffentliche Klasse DES3 {
privates statischer String -Algorithmus = "Dese"; // Verschlüsselungsalgorithmus, verfügbar, verfügbar
// Des, Dese, Blowfish
// KeyByte ist ein Verschlüsselungsschlüssel mit einer Länge von 24 Bytes
// SRC ist der verschlüsselte Datenpuffer (Quelle)
Public Static String Encryptmode (Byte [] KeyByte, Byte [] SRC)
{
versuchen
{
// Schlüssel generieren
SecretKey Desktop = neuer SecretKeySpec (KeyByte, Algorithmus);
// Verschlüsselung
Cipher c1 = cipher.getInstance (Algorithmus);
c1.init (cipher.encrypt_mode, Desktop);
// Verschlüsselung starten
byte [] verschlüsselt bytearray = c1.dofinal (SRC);
// Nach dem Verschlüsselungsvorgang Byte [] in die String von Base64 umwandeln
Base64Encoder ENC = new Base64Encoder ();
return Enc.code (verschlüsseltBytearray);
}
catch (java.security.nosuchalgorithmException E1)
{
e1.printstacktrace ();
}
catch (javax.crypto.nosuchpaddingException E2)
{
e2.printstacktrace ();
}
catch (java.lang.exception e3)
{
e3.printstacktrace ();
}
null zurückkehren;
}
// KeyByte ist ein Verschlüsselungsschlüssel mit einer Länge von 24 Bytes
// SRC ist der verschlüsselte Puffer
öffentliches statisches Byte [] decryptmode (Byte [] KeyByte, String SRC)
{
versuchen {
// Schlüssel generieren
SecretKey Desktop = neuer SecretKeySpec (KeyByte, Algorithmus);
// entschlüsseln
Cipher c1 = cipher.getInstance (Algorithmus);
c1.init (cipher.decrypt_mode, Desktop);
// Vor dem Entschlüsselungsvorgang
Base64DeCoder dec = new Base64DeCoder ();
byte [] verschlüsselt bytearray = dec.decodeBuffer (SRC);
// Entschlüsselungsvorgang wandelt die Zeichenfolge von Base64 in Byte [] um []
return c1.dofinal (verschlüsselte Bytearray);
} catch (java.security.nosuchalgorithmException e1) {
e1.printstacktrace ();
} catch (javax.crypto.nosuchpaddingException e2) {{
e2.printstacktrace ();
} catch (java.lang.exception e3) {
e3.printstacktrace ();
}
null zurückkehren;
}
// zur hexadezimalen Zeichenfolge konvertieren
public static String byte2hex (byte [] b) {
String hs = "";
String stmp = "";
für (int n = 0; n <B.Length; n ++) {
stmp = (java.lang.Ineger.tohexstring (b [n] & 0xff));
if (stmp.length () == 1)
HS = HS + "0" + STMP;
anders
HS = HS + STMP;
if (n <B.Length - 1)
hs = hs + ":";
}
return hsouppercase ();
}
öffentliche statische Leere Main (String [] Args)
{
// Fügen Sie einen neuen Sicherheitsalgorithmus hinzu.
Security.AddProvider (new com.sun.crypto.provider.sunjce ());
Final Byte [] 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 = "Dies ist ein 3DES -Test. Test";
System.out.println ("Stand vor der Verschlüsselung:" + SZSRC);
String coded = EncryptMode (KeyBytes, szsrc.getBytes ());
System.out.println ("verschlüsselte Zeichenfolge:" + codiert);
byte [] srcBytes = decryptmode (keyBytes, codiert);
System.out.println ("entschlüsselt String:" + (neuer String (srcBytes));
}
}