Aktueller Standort: Startseite> Neueste Artikel> So implementieren Sie eine komplexe Verschlüsselungs- und Entschlüsselungslogik von Zeichenfolgen durch mb_ereg_replace_callback?

So implementieren Sie eine komplexe Verschlüsselungs- und Entschlüsselungslogik von Zeichenfolgen durch mb_ereg_replace_callback?

M66 2025-08-05

So implementieren Sie eine komplexe Verschlüsselungs- und Entschlüsselungslogik von Zeichenfolgen durch mb_ereg_replace_callback?

In PHP gehört die Funktion mb_ereg_replace_callback zu einer der Funktionen der Mbtring -Erweiterungsbibliothek. Es ermöglicht uns, reguläre Ausdrücke zu verwenden, um Zeichenfolgen zu entsprechen und Rückruffunktionen während des Übereinstimmungsprozesses auszuführen, um den String -Inhalt dynamisch zu ändern. Diese Funktion macht mb_ereg_replace_callback sehr nützlich, wenn es sich um eine komplexe String -Verschlüsselung und -entschlüsselung handelt. In diesem Artikel werden Sie verstehen, wie Sie die String -Verschlüsselung und -Delie über mb_ereg_replace_callback implementieren.

1. Was ist die Funktion mb_ereg_replace_callback?

mb_ereg_replace_callback ist eine Funktion, die durch die Mbstring -Erweiterung in PHP bereitgestellt wird. Seine Funktion besteht darin, reguläre Ausdrücke zu verwenden, um Zeichenfolgen zu finden, den passenden Teil einer Rückruffunktion zu übergeben und dann den ursprünglichen Anpassungsinhalt zu ersetzen. Der Prototyp der Funktion lautet wie folgt:

 <span><span><span class="hljs-title function_ invoke__">mb_ereg_replace_callback</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$callback</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
  • $ muster : Ein regulärer Ausdruck, der den bestimmten Inhalt in der Zielzeichenfolge entspricht.

  • $ CALLBACK : Die Rückruffunktion, wenn der übereinstimmende Inhalt angezeigt wird, wird die Funktion aufgerufen, um den Inhalt zu verarbeiten.

  • $ String : Die Zielzeichenfolge, die die Funktion verarbeitet.

2. Grundlegende Ideen für Verschlüsselung und Entschlüsselung

Um die Verschlüsselung und Entschlüsselung von Zeichenfolgen durch mb_ereg_replace_callback zu implementieren, müssen wir zwei Logik definieren:

  1. Verschlüsselung : Konvertieren Sie jedes Zeichen in eine Zeichenfolge in ein verschlüsseltes Zeichen gemäß einer Regel.

  2. Entschlüsselung : Stellen Sie die verschlüsselte Zeichenfolge in die ursprüngliche Zeichenfolge wieder her.

Die Verschlüsselungs- und Entschlüsselungslogik kann unter Verwendung einfacher Charakter -Offsets implementiert werden, z. B. das Erhöhen oder Verringern des ASCII -Werts eines Zeichens um einen bestimmten Betrag.

3. Implementieren Sie die String -Verschlüsselung

Während des Verschlüsselungsprozesses können wir wählen, ob wir jedes Zeichen in der Zeichenfolge ausgleichen. Fügen Sie beispielsweise den ASCII -Wert eines Zeichens einem festen Wert hinzu. Hier ist ein Beispiel für die Verschlüsselung mit mb_ereg_replace_callback :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Verschlüsselte Rückruffunktion</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">encrypt_callback</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
    </span><span><span class="hljs-comment">// Holen Sie sich passende Charaktere</span></span><span>
    </span><span><span class="hljs-variable">$char</span></span><span> = </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>];
    </span><span><span class="hljs-comment">// Schalten Sie Zeichen in ASCII Wert und hinzufügen 3</span></span><span>
    </span><span><span class="hljs-variable">$ascii</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-variable">$char</span></span><span>) + </span><span><span class="hljs-number">3</span></span><span>;
    </span><span><span class="hljs-comment">// Verschlüsselt ASCII Wert zurück in den Charakter konvertieren</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-variable">$ascii</span></span><span>);
}

</span><span><span class="hljs-comment">// Zeichenfolge, die verschlüsselt werden soll</span></span><span>
</span><span><span class="hljs-variable">$input_string</span></span><span> = </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-comment">// Passen Sie jeden Charakter mit regelmäßigem Ausdruck an und verschlüsseln Sie</span></span><span>
</span><span><span class="hljs-variable">$encrypted_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_ereg_replace_callback</span></span><span>(</span><span><span class="hljs-string">'[A-Za-z0-9]'</span></span><span>, </span><span><span class="hljs-string">'encrypt_callback'</span></span><span>, </span><span><span class="hljs-variable">$input_string</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Encrypted: "</span></span><span> . </span><span><span class="hljs-variable">$encrypted_string</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

erklären:

  • Die Funktion "Encrypt_callback" führt bei jedem Matching -Zeichen eine Verschlüsselungsoperation aus und addiert den ASCII -Wert des Zeichens zu 3.

  • Regelmäßiger Ausdruck [A-Za-Z0-9] entspricht allen Buchstaben und Zahlen.

  • MB_Ereg_Replace_Callback ruft die Funktion "Encrypt_callback" auf, um die Zeichenfolge zu verarbeiten und die verschlüsselte Zeichenfolge zu generieren.

4. Implementieren Sie die String -Entschlüsselung

Der Entschlüsselungsprozess ist ein inverser Verschlüsselungsvorgang. Einfach ausgedrückt, müssen wir nur den ASCII -Wert des Zeichens von dem während der Verschlüsselung verwendeten Offset subtrahieren. Hier ist ein entschlüsselter Code -Beispiel:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Entschlüsseln Sie die Rückruffunktion</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">decrypt_callback</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
    </span><span><span class="hljs-comment">// Holen Sie sich passende Charaktere</span></span><span>
    </span><span><span class="hljs-variable">$char</span></span><span> = </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>];
    </span><span><span class="hljs-comment">// Schalten Sie Zeichen in ASCII Wert und Subtrahieren 3</span></span><span>
    </span><span><span class="hljs-variable">$ascii</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-variable">$char</span></span><span>) - </span><span><span class="hljs-number">3</span></span><span>;
    </span><span><span class="hljs-comment">// Das entschlüsselte ASCII Wert zurück in den Charakter konvertieren</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-variable">$ascii</span></span><span>);
}

</span><span><span class="hljs-comment">// Verschlüsselte Zeichenfolge</span></span><span>
</span><span><span class="hljs-variable">$encrypted_string</span></span><span> = </span><span><span class="hljs-string">"Khoor, Zruog!"</span></span><span>;
</span><span><span class="hljs-comment">// Passen Sie jeden Charakter mit regelmäßigem Ausdruck an und entschlüsseln Sie ihn</span></span><span>
</span><span><span class="hljs-variable">$decrypted_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_ereg_replace_callback</span></span><span>(</span><span><span class="hljs-string">'[A-Za-z0-9]'</span></span><span>, </span><span><span class="hljs-string">'decrypt_callback'</span></span><span>, </span><span><span class="hljs-variable">$encrypted_string</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Decrypted: "</span></span><span> . </span><span><span class="hljs-variable">$decrypted_string</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

erklären:

  • Die Funktion decrypt_callback führt eine Entschlüsselungsoperation bei jedem Matching -Zeichen aus und subtrahiert den ASCII -Wert des Zeichens um 3.

  • Verwenden Sie in ähnlicher Weise den regulären Ausdruck [A-Za-Z0-9], um alle Buchstaben und Zahlen zu entsprechen, und die Rückruffunktionen, um die verschlüsselte Zeichenfolge zu verarbeiten.

5. Praktische Anwendungsszenarien

Diese Verschlüsselungs- und Entschlüsselungsmethode basierend auf mb_ereg_replace_callback ist sehr geeignet für die Verwendung bei der einfachen Verschlüsselungslogik, insbesondere wenn der String -Inhalt relativ einzeln ist und der Zeichensatz begrenzt ist. Es kann uns helfen, Zeichenfolgen dynamisch zu ändern und komplexe Verschlüsselungs- und Entschlüsselungsvorgänge durchzuführen. Obwohl diese Methode für einfache Szenarien geeignet ist, wird empfohlen, reife Verschlüsselungsalgorithmen (wie AES, RSA usw.) für komplexere Verschlüsselungsanforderungen zu verwenden.

6. Zusammenfassung

Durch MB_Ereg_Replace_Callback können wir die String -Verschlüsselungs- und Entschlüsselungslogik problemlos implementieren. Diese Funktion kombiniert die leistungsstarken Funktionen regulärer Ausdrücke und Rückruffunktionen und kann während der String -Verarbeitung verschiedene komplexe Regeln flexibel anwenden. Diese Verschlüsselungsmethode ist jedoch hauptsächlich für einfache Szenarien geeignet. Für Anwendungen mit höheren Sicherheitsanforderungen in Produktionsumgebungen sollte eine professionelle Verschlüsselungstechnologie verwendet werden.