Im vorherigen Abschnitt haben wir die Verwendung einiger Verschlüsselungs- und Entschlüsselungsklassen vorgestellt. Lassen Sie uns sie zusammenstellen, um einen einfachen Test durchzuführen.
Hauptaktivität:
Kopieren Sie den Codecode wie folgt:
Paket com.home.testdes;
android.os.Bundle importieren;
import android.util.Log;
android.app.Activity importieren;
öffentliche Klasse MainActivity erweitert Aktivität {
@Override
protected void onCreate(Bundle savingInstanceState) {
super.onCreate(savedInstanceState);
DESUtil u = new DESUtil();
String mi = u.getEnc("Ich liebe dich");
Log.i("Nach der Verschlüsselung", mi);
String ming = u.getDec(mi);
Log.i("Nach der Entschlüsselung", ming);
}
}
Verschlüsselungs- und Entschlüsselungstools:
Kopieren Sie den Codecode wie folgt:
Paket com.home.testdes;
java.security.Key importieren;
import java.security.spec.AlgorithmParameterSpec;
javax.crypto.Cipher importieren;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
android.util.Base64 importieren;
/**
* Verwenden Sie DES-Verschlüsselungs- und Entschlüsselungstools
*
* @author-Administrator
*
*/
öffentliche Klasse DESUtil {
privater Schlüssel key;// Schlüsselwert des Schlüssels
privates Byte[] DESkey;
privates Byte[] DESIV = { 0x12, 0x34, 0x56, 0x78, (Byte) 0x90, (Byte) 0xAB,
(Byte) 0xCD, (Byte) 0xEF };
private AlgorithmParameterSpec iv = null;//Parameterschnittstelle des Verschlüsselungsalgorithmus
public DESUtil() {
versuchen {
this.DESkey = "abcdefghijk".getBytes("UTF-8");//Legen Sie den Schlüssel fest
DESKeySpec keySpec = new DESKeySpec(DESkey);//Schlüsselparameter festlegen
iv = new IvParameterSpec(DESIV); // Vektor festlegen
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");//Schlüsselfabrik abrufen
key = keyFactory.generateSecret(keySpec);//Schlüsselobjekt abrufen
} Catch (Ausnahme e) {
e.printStackTrace();
}
}
/**
* Verschlüsselte Zeichenfolge, Klartexteingabe, Chiffriertextausgabe
*
* @param inputString
* Nur zu verschlüsselnder Text
* @return verschlüsselte Zeichenfolge
*/
public String getEnc(String inputString) {
byte[] byteMi = null;
byte[] byteMing = null;
String-AusgabeString = "";
versuchen {
byteMing = inputString.getBytes("UTF-8");
byteMi = this.getEncCode(byteMing);
byte[] temp = Base64.encode(byteMi, Base64.DEFAULT);
OutputString = neuer String(temp);
} Catch (Ausnahme e) {
} Endlich {
byteMing = null;
byteMi = null;
}
return OutputString;
}
/**
* String entschlüsseln und Klartext als Chiffretext und Ausgabe eingeben
*
* @param inputString
* Die Zeichenfolge, die entschlüsselt werden muss
* @return entschlüsselte Zeichenfolge
*/
public String getDec(String inputString) {
byte[] byteMing = null;
byte[] byteMi = null;
String strMing = "";
versuchen {
byteMi = Base64.decode(inputString.getBytes(), Base64.DEFAULT);
byteMing = this.getDesCode(byteMi);
strMing = new String(byteMing, "UTF8");
} Catch (Ausnahme e) {
} Endlich {
byteMing = null;
byteMi = null;
}
return strMing;
}
/**
* Die Verschlüsselung verwendet die Eingabe von Byte[]-Klartext und die Ausgabe von Byte[]-Verschlüsselungstext
*
* @param bt
* Zu verschlüsselnder Bytecode
* @return verschlüsselter Bytecode
*/
privates Byte[] getEncCode(byte[] bt) {
byte[] byteFina = null;
Chiffre-Chiffre;
versuchen {
// Cipher-Instanz abrufen
cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, iv);
byteFina = cipher.doFinal(bt);
} Catch (Ausnahme e) {
e.printStackTrace();
} Endlich {
Chiffre = null;
}
return byteFina;
}
/**
* Die Entschlüsselung verwendet die Chiffretext-Eingabe byte[] und die Klartext-Ausgabe byte[].
*
* @param bt
* Zu entschlüsselnder Bytecode
* @return entschlüsselter Bytecode
*/
privates byte[] getDesCode(byte[] bt) {
Chiffre-Chiffre;
byte[] byteFina = null;
versuchen {
// Cipher-Instanz abrufen
cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, Schlüssel, iv);
byteFina = cipher.doFinal(bt);
} Catch (Ausnahme e) {
e.printStackTrace();
} Endlich {
Chiffre = null;
}
return byteFina;
}
}