Heim Backend-Entwicklung PHP-Tutorial Parsen von AES-verschlüsselten Dateien in PHP (mit Code)

Parsen von AES-verschlüsselten Dateien in PHP (mit Code)

Aug 04, 2018 pm 01:56 PM
加密

Der Inhalt dieses Artikels befasst sich mit der Analyse von AES-verschlüsselten Dateien in PHP (mit Code). Ich hoffe, dass er für Freunde hilfreich ist.

AES-Einführung

Advanced Encryption Standard (AES, Advanced Encryption Standard) ist der gebräuchlichste symmetrische Verschlüsselungsalgorithmus (die verschlüsselte Übertragung des WeChat-Applets verwendet diesen Verschlüsselungsalgorithmus). Symmetrische Verschlüsselungsalgorithmen verwenden denselben Schlüssel für die Verschlüsselung und Entschlüsselung.

Symmetrische Verschlüsselung
Der für die Verschlüsselung und Entschlüsselung verwendete Schlüssel ist derselbe. Diese Verschlüsselungsmethode ist sehr schnell und für Situationen geeignet, in denen häufig Daten gesendet werden. Der Nachteil besteht darin, dass die Übertragung des Schlüssels aufwändiger ist. Geheime Schlüssel können leicht durchsickern.

Asymmetrische Verschlüsselung
Die für die Verschlüsselung und Entschlüsselung verwendeten Schlüssel sind unterschiedlich. Normalerweise ist die Geschwindigkeit der Verschlüsselung und Entschlüsselung relativ hoch. Geeignet für gelegentliches Senden von Daten. Der Vorteil liegt in der komfortablen Schlüsselübertragung. Gängige asymmetrische Verschlüsselungsalgorithmen sind RSA, ECC und EIGamal.

Hinweis:
PHP7.2 hat die Mcrypt-Erweiterung entfernt und hier wird die OpenSSL-Erweiterung verwendet.

<?php /*
* AES 算法    
*/class Aes {

    private $hex_iv = &#39;00000000000000000000000000000000&#39;; 

    private $key = &#39;397e2eb61307109f6e68006ebcb62f98&#39;;    
    function __construct($key) {
        $this->key = $key;        
        $this->key = hash(&#39;sha256&#39;, $this->key, true);
    }    /*
    * 字符串加密 不写入文件 
    */
    public function encrypt($input)
    {
        $data = openssl_encrypt($input, &#39;AES-256-CBC&#39;, $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));        
        $data = base64_encode($data);        
        return $data;
    }    /*
    * aes 给PHP文件加密
    * 写入设置文件
    */
    public function filecrypt($filename)
    {
        $type=strtolower(substr(strrchr($filename,&#39;.&#39;),1));            
        if (&#39;php&#39; == $type && is_file($filename) && is_writable($filename)) {  
                 $contents = file_get_contents($filename);                 
                 // echo $contents;exit;  
                 $contents = php_strip_whitespace($filename);                 
                 // echo $contents;exit;
                 // $headerPos = strpos($contents,&#39;<?php&#39;);
                 // echo $headerPos;exit;


                 // $contents = substr($contents, $headerPos + 5, $footerPos - $headerPos);
                 // echo $contents;
                 exit;
                 $data = openssl_encrypt($contents, &#39;AES-256-CBC&#39;, $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));                 
                 // echo $data;exit;
                 $data = base64_encode($data);                
                  // echo $data;exit;
                 return file_put_contents($filename, $data);  
            }  
                 return false;  
    }    /*
    * 字符串解密
    */
    public function decrypt($input)
    {
        $decrypted = openssl_decrypt(base64_decode($input), &#39;AES-256-CBC&#39;, $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));        
        return $decrypted;
    }    /*
      For PKCS7 padding
     */

    private function addpadding($string, $blocksize = 16) {

        $len = strlen($string);        
        $pad = $blocksize - ($len % $blocksize);        
        $string .= str_repeat(chr($pad), $pad);        
        return $string;

    }    private function strippadding($string) {

        $slast = ord(substr($string, -1));        
        $slastc = chr($slast);        
        $pcheck = substr($string, -$slast);        
        if (preg_match("/$slastc{" . $slast . "}/", $string)) {            
        $string = substr($string, 0, strlen($string) - $slast);            
        return $string;

        } else {            
        return false;

        }

    }    
    function hexToStr($hex)
    {

        $string=&#39;&#39;;        
        for ($i=0; $i < strlen($hex)-1; $i+=2)

        {            
        $string .= chr(hexdec($hex[$i].$hex[$i+1]));

        }        
        return $string;
    }

}
$key = &#39;397e2eb61307109f6e68006ebcb62f98&#39;;
$aes = new Aes($key);
$filename = __DIR__.&#39;\exchange.php&#39;;
// $filename = &#39;Y6RCuF6ETPC5J57hfhxovg==&#39;;
// 加密
$string = $aes->filecrypt($filename);
// echo $string;
echo "OK,加密完成!" ;
Nach dem Login kopieren

2. Einfache Funktion zum Verschlüsseln von PHP-Dateien

<?php  

 function encode_file_contents($filename) {  
     $type=strtolower(substr(strrchr($filename,&#39;.&#39;),1));  
     if (&#39;php&#39; == $type && is_file($filename) && is_writable($filename)) { // 如果是PHP文件 并且可写 则进行压缩编码  
         $contents = file_get_contents($filename); // 判断文件是否已经被编码处理  
         $contents = php_strip_whitespace($filename);   

         // 去除PHP头部和尾部标识  
         $headerPos = strpos($contents,&#39;<?php&#39;);  
         $footerPos = strrpos($contents,&#39;?>&#39;);  
         $contents = substr($contents, $headerPos + 5, $footerPos - $headerPos);  
         $encode = base64_encode(gzdeflate($contents)); // 开始编码  
         $encode = &#39;<?php&#39;."\n eval(gzinflate(base64_decode("."&#39;".$encode."&#39;".")));\n\n?>";   

         return file_put_contents($filename, $encode);  
     }  
     return false;  
 }   

 //调用函数
 // echo __DIR__.&#39;\server.php&#39;;   
 $filename = __DIR__.&#39;\server.php&#39;;  
 encode_file_contents($filename);  
 echo "OK,加密完成!" ;
Nach dem Login kopieren

Empfohlene verwandte Artikel:

Code für Post-Methode anfordern und Methode in Curl von PHP abrufen

So konvertieren Sie ein JSON-Objekt in ein Array in thinkphp5 (Code)

Das obige ist der detaillierte Inhalt vonParsen von AES-verschlüsselten Dateien in PHP (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Aktivieren Sie die 256-Bit-Bitlocker-Verschlüsselung unter Windows 11 für mehr Sicherheit Aktivieren Sie die 256-Bit-Bitlocker-Verschlüsselung unter Windows 11 für mehr Sicherheit Nov 26, 2023 am 11:21 AM

Bitlocker ist die Standardverschlüsselungstechnologie für Windows-Betriebssysteme. Es wird häufig unter Windows verwendet, einige Benutzer bevorzugen jedoch Lösungen von Drittanbietern wie VeraCrypt. Was viele Benutzer von Bitlocker nicht wissen, ist, dass es standardmäßig eine 128-Bit-Verschlüsselung verwendet, obwohl 256-Bit verfügbar ist. Ohne zu sehr auf die Unterschiede einzugehen; der Hauptunterschied zwischen der AES-128-Bit- und der 256-Bit-Verschlüsselung ist die Länge des Sicherheitsschlüssels. Längere Tasten erschweren Brute-Force-Angriffe. Während der Standardwert 128-Bit ist, empfiehlt sogar Microsoft 256-Bit für mehr Sicherheit. Das Problem besteht darin, dass die meisten Benutzer wahrscheinlich nichts über die schwächeren Standardeinstellungen wissen oder wissen, wie sie diese ändern können. Zuerst möchten Sie vielleicht W. kennen lernen

Detailliertes Tutorial zu Win11-verschlüsseltem DNS Detailliertes Tutorial zu Win11-verschlüsseltem DNS Dec 25, 2023 am 10:13 AM

Microsoft hat zuvor DNS-Verschlüsselungsdienste für Win11 bereitgestellt, aber viele Benutzer wissen nicht, wie man mit Win11 verschlüsselte DNS verwendet. Tatsächlich müssen wir nur die DNS-Einstellungen unter den Netzwerkeinstellungen öffnen. Ausführliches Tutorial zu Win11-verschlüsselten DNS: 1. Geben Sie zuerst die Festplatte ein und suchen Sie den Ordner, den Sie verschlüsseln möchten. 2. Öffnen Sie dann „Ethernet“ auf der rechten Seite. 3. Suchen Sie dann unten die DNS-Serverzuordnung und klicken Sie auf „Bearbeiten“. 4. Nachdem Sie „Auto (DHCP)“ auf „Manuell“ geändert haben, öffnen Sie „IPv4“ unten. 5. Nach dem Einschalten , geben Sie „8.8.8.8“ in das bevorzugte DNS ein. 6. Ändern Sie dann die bevorzugte DNS-Verschlüsselung in „Nur Verschlüsselung (DNS über HTTPS)“. 7. Nachdem die Änderungen abgeschlossen sind, klicken Sie auf „Speichern“ und Sie finden

Unterstützt Win10 Home Edition die Ordnerverschlüsselung? Unterstützt Win10 Home Edition die Ordnerverschlüsselung? Jan 09, 2024 am 08:58 AM

Ziel der Dateiverschlüsselung ist es, Daten auf professionellem Niveau zu verschlüsseln, um die Datensicherheit effektiver zu gewährleisten! Nur durch die Beherrschung des richtigen Verschlüsselungsschlüssels kann der Entschlüsselungsvorgang durchgeführt werden, wodurch die Sicherheit der Informationsressourcen gewährleistet wird. Allerdings verfügt die Dateiverschlüsselungsfunktion von Win10 Home Edition noch nicht über diese Funktion. Kann Win10 Home Edition Ordner verschlüsseln? Antwort: Win10 Home Edition kann keine Ordner verschlüsseln. Tutorial zum Verschlüsseln von Dateien im Windows-System 1. Klicken Sie mit der rechten Maustaste auf die Datei oder den Ordner, die Sie verschlüsseln möchten (oder halten Sie die Taste eine Weile gedrückt) und wählen Sie dann die Funktion „Eigenschaften“. 2. Suchen Sie in der neuen erweiterten Benutzeroberfläche nach der Option „Erweitert“. Denken Sie nach dem Klicken zur Eingabe daran, die Option „Inhalt verschlüsseln, um Daten zu schützen“ unten zu aktivieren. 3. Nachdem die Einstellung abgeschlossen ist, klicken Sie auf „OK“.

So richten Sie die Verschlüsselung des Fotoalbums auf einem Apple-Mobiltelefon ein So richten Sie die Verschlüsselung des Fotoalbums auf einem Apple-Mobiltelefon ein Mar 02, 2024 pm 05:31 PM

In Apple-Handys können Benutzer Fotoalben nach ihren eigenen Bedürfnissen verschlüsseln. Einige Benutzer wissen nicht, wie sie es einrichten sollen. Sie können dem Memo die zu verschlüsselnden Bilder hinzufügen und das Memo dann sperren. Als nächstes stellt der Herausgeber die Methode zum Einrichten der Verschlüsselung mobiler Fotoalben für Benutzer vor. Schauen Sie sich das an. Apple-Handy-Tutorial So richten Sie die iPhone-Fotoalbum-Verschlüsselung ein A: Nachdem Sie dem Memo die Bilder hinzugefügt haben, die verschlüsselt werden müssen, gehen Sie zum Sperren des Memos, um eine detaillierte Einführung zu erhalten: 1. Öffnen Sie das Fotoalbum und wählen Sie das Bild aus, das verschlüsselt werden soll verschlüsselt, und klicken Sie dann unten auf [Hinzufügen zu]. 2. Wählen Sie [Zu Notizen hinzufügen]. 3. Geben Sie das Memo ein, suchen Sie das gerade erstellte Memo, geben Sie es ein und klicken Sie auf das Symbol [Senden] in der oberen rechten Ecke. 4. Klicken Sie unten auf [Gerät sperren].

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Oct 09, 2023 pm 09:21 PM

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Im heutigen Internetzeitalter ist Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der Softwareentwicklung geworden. In C# treten normalerweise einige Netzwerkkommunikationsprobleme auf, z. B. die Sicherheit der Datenübertragung, die Stabilität der Netzwerkverbindung usw. In diesem Artikel werden häufig auftretende Netzwerkkommunikations- und Sicherheitsprobleme in C# ausführlich erläutert und entsprechende Lösungen und Codebeispiele bereitgestellt. 1. Netzwerkkommunikationsprobleme Unterbrechung der Netzwerkverbindung: Während des Netzwerkkommunikationsprozesses kann die Netzwerkverbindung unterbrochen werden, was zu Problemen führen kann

So legen Sie ein Passwort für die Ordnerverschlüsselung ohne Komprimierung fest So legen Sie ein Passwort für die Ordnerverschlüsselung ohne Komprimierung fest Feb 20, 2024 pm 03:27 PM

Die Ordnerverschlüsselung ist eine gängige Datenschutzmethode, die den Inhalt eines Ordners verschlüsselt, sodass nur diejenigen auf die Dateien zugreifen können, die über das Entschlüsselungskennwort verfügen. Beim Verschlüsseln eines Ordners gibt es einige gängige Möglichkeiten, ein Passwort festzulegen, ohne die Datei zu komprimieren. Zunächst können wir die Verschlüsselungsfunktion des Betriebssystems nutzen, um ein Ordnerkennwort festzulegen. Für Windows-Benutzer können Sie es einrichten, indem Sie die folgenden Schritte ausführen: Wählen Sie den zu verschlüsselnden Ordner aus, klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie „Eigenschaften“.

Vollständige Anleitung zur Win11-Dateiverschlüsselung Vollständige Anleitung zur Win11-Dateiverschlüsselung Jan 09, 2024 pm 02:50 PM

Einige Freunde möchten ihre Dateien schützen, wissen aber nicht, wie sie Win11-Dokumente verschlüsseln sollen. Tatsächlich können wir die Ordnerverschlüsselung direkt verwenden oder Software von Drittanbietern zum Verschlüsseln von Dateien verwenden. Ausführliches Tutorial zur Win11-Dokumentenverschlüsselung: 1. Suchen Sie zunächst die Datei, die Sie verschlüsseln möchten, klicken Sie mit der rechten Maustaste, um sie auszuwählen, und öffnen Sie „Eigenschaften“. 2. Klicken Sie dann in der Eigenschaftenspalte auf „Erweitert“. 3. Wählen Sie „Inhalt verschlüsseln, um Daten zu schützen“. " in „Erweitert“ und klicken Sie auf „OK“ 4. Klicken Sie dann zum Speichern auf „OK“. 5. Wählen Sie abschließend den gewünschten Verschlüsselungsmodus und klicken Sie auf „OK“, um das Dokument zu speichern und das Dokument zu verschlüsseln.

So verschlüsseln Sie das komprimierte Paket mit der Methode „winrar-winrar-verschlüsseltes komprimiertes Paket'. So verschlüsseln Sie das komprimierte Paket mit der Methode „winrar-winrar-verschlüsseltes komprimiertes Paket'. Mar 23, 2024 pm 12:10 PM

Der Editor stellt Ihnen drei Methoden zur Verschlüsselung und Komprimierung vor: Methode 1: Verschlüsselung Die einfachste Verschlüsselungsmethode besteht darin, beim Verschlüsseln der Datei das Kennwort einzugeben, das Sie festlegen möchten, und die Verschlüsselung und Komprimierung sind abgeschlossen. Methode 2: Automatische Verschlüsselung Bei der gewöhnlichen Verschlüsselungsmethode müssen wir beim Verschlüsseln jeder Datei ein Passwort eingeben. Wenn Sie eine große Anzahl komprimierter Pakete verschlüsseln möchten und die Passwörter gleich sind, können wir in WinRAR die automatische Verschlüsselung festlegen und dann nur „Wann“. Beim normalen Komprimieren von Dateien fügt WinRAR jedem komprimierten Paket ein Passwort hinzu. Die Methode ist wie folgt: Öffnen Sie WinRAR, klicken Sie in der Einstellungsoberfläche auf Optionen-Einstellungen, wechseln Sie zu [Komprimierung], klicken Sie auf Standardkonfiguration erstellen – Kennwort festlegen. Geben Sie hier das Kennwort ein, das wir festlegen möchten, und klicken Sie auf OK, um die Einstellung abzuschließen. Wir benötigen nur korrigieren

See all articles