Heim >Java >javaLernprogramm >Analyse von Verschlüsselungs- und Entschlüsselungsbeispielen von PHP und Java des
des-Verschlüsselung ist eine Verschlüsselungsmethode, die im Internet bei der symmetrischen Verschlüsselung weit verbreitet ist. PHP unterstützt des-Verschlüsselung über die mcrypt-Erweiterungsbibliothek. Um des-Verschlüsselung in PHP zu verwenden, müssen Sie zuerst die mcrypt-Erweiterungsbibliothek installieren # #面#Das Folgende ist das Beispiel der Verschlüsselung und Entschlüsselung#🎜🎜 ## 🎜🎜 ## 🎜🎜#Kopieren Sie den Codecode wie folgt:
🎜🎜#$ ie iv_size = mcrypt_iv_size (mcrypt_rijndael_256, mcrypt_mode_ecb);# 🎜🎜 #$ iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);$key = „Das ist ein sehr geheimer Schlüssel“;//Key
$text = „Treffen Sie mich um 11 Uhr hinter dem monument." ;//Inhalt, der verschlüsselt werden muss
$crypttext =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv) ); # 🎜🎜#
MCRYPT_RIJNDAEL_128, MCRYPT_RIJNDAEL_192 und MCRYPT_RIJNDAEL_256 werden normalerweise im AES-Verschlüsselungsalgorithmus verwendet. Die folgenden 128, 192 und 256 stellen die Anzahl der Bits des geheimen Schlüssels (d. h. des verschlüsselten Schlüssels) dar Wenn Sie beispielsweise MCRYPT_RIJNDAEL_128 verwenden, beträgt die Länge des geheimen Schlüssels 128 Bit, wenn er mit diesem Algorithmus verschlüsselt wird. Beispiel: $key = 'fjjda0&9^$$#+*%$fada', also 20 Zeichen, dann sind es nur die ersten 16 Die bei der eigentlichen Verschlüsselung verwendeten Zeichen werden verschlüsselt (16*8=128), PHP mit weniger als 128 Bit verwendet '.javax.crypto.Cipher importieren;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public class Security {
public static String encrypt(String input, String key){
byte[] crypted = null;
try{
SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, skey);
crypted = cipher.doFinal(input.getBytes());
}catch(Exception e){
System.out.println(e.toString());
}
return new String(Base64.encodeBase64(crypted));
}
public static String decrypt(String input, String key){
byte[] output = null;
try{
SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, skey);
Ausgabe = cipher.doFinal(Base64.decodeBase64(input));
}catch(Exception e){
System.out.println(e.toString());
}
return new String(output);
}
public static void main(String[] args) {
String key = "1234567891234567";
String data = "example";
System.out.println(Security.encrypt(data, key));
System.out.println(Security.decrypt(Security.encrypt(data, key), key));
}
}
Das obige ist der detaillierte Inhalt vonAnalyse von Verschlüsselungs- und Entschlüsselungsbeispielen von PHP und Java des. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!