Die Zeichenfolge, die ich getestet habe, war JQuery Quellcode.
Einfache Textlänge: 78082
Nach der Komprimierung: 26566
Verschlüsselungslänge: 54746
Wiederbelebung: 41647
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------
Passwortlänge: 41647
Dekompression: 54746
Nach der Entschlüsselung: 26566
Redekompression: 78082
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------
Vergleich erfolgreich
DES benötigt Jar: sun.misc.base64Decoder.jar
Prüfen
Die Codekopie lautet wie folgt:
public static void main (String [] args) löst Ausnahme {aus {
String cont = "";
String cont2 = jm (yjy (cont));
if (cont.equals (cont2)) {
System.out.println ("Vergleich erfolgreich");
}anders{
System.out.println ("Vergleich fehlgeschlagen");
}
}
public static String yjy (String -Inhalt) löst Ausnahme {aus {
System.out.println ("Klartextlänge:" + cont.Length ());
// Erste Komprimierung
cont = ziputil2.compress (cont);
System.out.println ("Nach Komprimierung:" + cont.Length ());
// Erstverschlüsselung
cont = DeSutil.encrypt (cont, deutil.pwd_key);
System.out.println ("Verschlüsselungslänge:" + cont.Length ());
// zweite Komprimierung
cont = ziputil2.compress (cont);
System.out.println ("recompress:" + cont.Length ());
return cont;
}
public static String jm (String -Inhalt) löst Ausnahme {aus {
System.out.println ("-----------------------------");
System.out.println ("Ciphertext Länge:" + cont.Length ());
// zum ersten Mal dekomprimieren
cont = ziputil2.uncompress (cont);
System.out.println ("Decompress:" + cont.Length ());
// zum ersten Mal entschlüsseln
cont = DeSutil.decrypt (cont, deutil.pwd_key);
System.out.println ("Nach Entschlüsselung:" + cont.Length ());
// die zweite Dekompression
cont = ziputil2.uncompress (cont);
System.out.println ("Reextract:" + cont.Length ());
return cont;
}
Desutil
Die Codekopie lautet wie folgt:
importieren java.io.ioException;
Java.security.securerandom importieren;
importieren javax.crypto.cipher;
importieren javax.crypto.secretkey;
importieren javax.crypto.secretkeyFactory;
importieren javax.crypto.spec.deskeyspec;
decoder.base64Decoder import;
decoder.base64Coder importieren;
öffentliche Klasse Desutil {
private endgültige statische String Des = "Des";
öffentliche endgültige statische String pwd_key = "MZTHPWDJM";
public Final static String id_key = "MZTHIDJM";
public static void main (String [] args) löst Ausnahme {aus {
String data = "xkajsdasdk'al; ks'dl; kasl; d";
System.err.println ("Encrypt:"+Encrypt (Daten, pwd_key));
System.err.println ("entschlüsselt:" +entschlüsselt (Verschlüsselung (Daten, pwd_key), pwd_key));
}
/**
* Beschreibung Verschlüsselung basierend auf dem Schlüsselwert
*
* @param Daten
* @param key
* Verschlüsselungsschlüssel -Byte -Array
* @zurückkehren
* @throws Ausnahme
*/
öffentliches statisches String -Verschlüsselung (String -Daten, String -Schlüssel) löst Ausnahme {aus {
byte [] bt = Encrypt (data.getBytes (), key.getBytes ());
String strs = new Base64EnenCoder (). Encode (BT);
return strs;
}
/**
* Beschreibung entschlüsselt nach dem Schlüsselwert
*
* @param Daten
* @param key
* Verschlüsselungsschlüssel -Byte -Array
* @zurückkehren
* @throws ioException
* @throws Ausnahme
*/
public static String entschlüsselt (String -Daten, String -Schlüssel) löst IOException aus,
Ausnahme {
if (data == null)
null zurückkehren;
Base64DeCoder decoder = new Base64DeCoder ();
byte [] buf = decoder.decodeBuffer (Daten);
byte [] bt = entschlüsselt (buf, key.getBytes ());
Neue Zeichenfolge zurückgeben (BT);
}
/**
* Beschreibung Verschlüsselung basierend auf dem Schlüsselwert
*
* @param Daten
* @param key
* Verschlüsselungsschlüssel -Byte -Array
* @zurückkehren
* @throws Ausnahme
*/
privates statisches Byte [] Encrypt (Byte [] Daten, Byte [] Schlüssel) löst eine Ausnahme {aus {aus {
// generieren Sie eine vertrauenswürdige Zufallszahlquelle
Securerandom SR = new Securerandom ();
// Erstellen Sie ein Deskeyspec -Objekt aus den ursprünglichen Schlüsseldaten
DeskeySpec dks = new Deskeyspec (Schlüssel);
// Erstellen Sie eine Schlüsselfabrik und verwenden Sie es, um Deskeyspec in ein SecretKey -Objekt umzuwandeln
SecryKeyFactory keyFactory = secryKeyFactory.getInstance (DES);
SecretKey SecureKey = KeyFactory.generateSecret (DKS);
// Das Cipher -Objekt vervollständigt tatsächlich den Verschlüsselungsvorgang
Cipher cipher = cipher.getInstance (des);
// Initialisieren Sie das Cipher -Objekt mit einem Schlüssel
cipher.init (cipher.encrypt_mode, SecureKey, SR);
cipher.dofinal (Daten) zurückgeben;
}
/**
* Beschreibung entschlüsselt nach dem Schlüsselwert
*
* @param Daten
* @param key
* Verschlüsselungsschlüssel -Byte -Array
* @zurückkehren
* @throws Ausnahme
*/
privates statisches Byte [] entschlüsseln (Byte [] Daten, Byte [] Schlüssel) Ausnahme {
// generieren Sie eine vertrauenswürdige Zufallszahlquelle
Securerandom SR = new Securerandom ();
// Erstellen Sie ein Deskeyspec -Objekt aus den ursprünglichen Schlüsseldaten
DeskeySpec dks = new Deskeyspec (Schlüssel);
// Erstellen Sie eine Schlüsselfabrik und verwenden Sie es, um Deskeyspec in ein SecretKey -Objekt umzuwandeln
SecryKeyFactory keyFactory = secryKeyFactory.getInstance (DES);
SecretKey SecureKey = KeyFactory.generateSecret (DKS);
// Das Cipher -Objekt vervollständigt tatsächlich den Entschlüsselungsvorgang
Cipher cipher = cipher.getInstance (des);
// Initialisieren Sie das Cipher -Objekt mit einem Schlüssel
cipher.init (cipher.decrypt_mode, SecureKey, SR);
cipher.dofinal (Daten) zurückgeben;
}
}
Ziputil2
.
Die Codekopie lautet wie folgt:
importieren java.io.BytearrayInputStream;
importieren java.io.BytearrayoutputStream;
importieren java.io.ioException;
import Java.util.zip.gzipinputStream;
import Java.util.zip.gzipoutputStream;
// eine Zeichenfolge im Zip -Modus komprimieren und dekomprimieren
öffentliche Klasse Ziputil2 {
// Testmethode
public static void main (String [] args) löst ioException {aus
// Testzeichenfolge
String str = "";
System.out.println ("Originallänge:" + str.length ());
System.out.println ("Nach Komprimierung:" + ziputil2.compress (str) .Length ());
System.out
.println ("decompress:" + ziputil2.uncompress (ziputil2.compress (str)));
}
// Komprimierung
public static String Compress (String Str) löst IoException {aus
if (str == null || str.length () == 0) {
return str;
}
BytearrayoutputStream out = new bytearrayoutputStream ();
GzipoutputStream gzip = new gzipoutputStream (out);
gzip.write (str.getBytes ());
gzip.close ();
return out.toString ("ISO-8859-1");
}
// dekomprimieren
public static String unkomprimieren (String Str) löst ioException {aus
if (str == null || str.length () == 0) {
return str;
}
BytearrayoutputStream out = new bytearrayoutputStream ();
Bytearrayinputstream in = neuer bytearrayinputstream (
Str.GetBytes ("ISO-8859-1"));
GzipinputStream Gunzip = neuer gzipinputstream (in);
byte [] buffer = neues byte [256];
int n;
while ((n = Gunzip.read (Puffer))> = 0) {
out.write (puffer, 0, n);
}
// toString () verwendet die Plattform -Standardcodierung und kann auch explizit angegeben werden, z. B. ToString (GBK)
return out.toString ();
}
}