Heim >Java >javaLernprogramm >Analyse von Verschlüsselungs- und Entschlüsselungsbeispielen von PHP und Java des

Analyse von Verschlüsselungs- und Entschlüsselungsbeispielen von PHP und Java des

WBOY
WBOYnach vorne
2023-04-29 09:40:201387Durchsuche

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

echo ($text) . "n";

$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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen