


Gemeinsame Nutzung von 2 weiteren klassischen PHP-Verschlüsselungs- und Entschlüsselungsfunktionen
Manchmal müssen wir im Projekt PHP verwenden, um bestimmte Informationen zu verschlüsseln, das heißt, um durch den Verschlüsselungsalgorithmus eine verschlüsselte Zeichenfolge zu generieren. .
Die häufigsten Anwendungen sind die Benutzeranmeldung und einige API-Datenaustauschszenarien.
Der Autor hat einige klassische PHP-Verschlüsselungs- und Entschlüsselungsfunktionscodes zusammengestellt, um sie mit Ihnen zu teilen. Das Prinzip der Verschlüsselung und Entschlüsselung besteht im Allgemeinen darin, einen bestimmten Verschlüsselungs- und Entschlüsselungsalgorithmus zu verwenden, den Schlüssel zum Algorithmus hinzuzufügen und schließlich die Verschlüsselungs- und Entschlüsselungsergebnisse zu erhalten.
1. Eine sehr leistungsstarke Authentifizierungscode-Verschlüsselungsfunktion, Discuz! Klassischer Code (mit detaillierter Erklärung):
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { // 动态密匙长度,相同的明文会生成不同密文就是依靠动态密匙 $ckey_length = 4; // 密匙 $key = md5($key ? $key : $GLOBALS['discuz_auth_key']); // 密匙a会参与加解密 $keya = md5(substr($key, 0, 16)); // 密匙b会用来做数据完整性验证 $keyb = md5(substr($key, 16, 16)); // 密匙c用于变化生成的密文 $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ''; // 参与运算的密匙 $cryptkey = $keya.md5($keya.$keyc); $key_length = strlen($cryptkey); // 明文,前10位用来保存时间戳,解密时验证数据有效性,10到26位用来保存$keyb(密匙b), //解密时会通过这个密匙验证数据完整性 // 如果是解码的话,会从第$ckey_length位开始,因为密文前$ckey_length位保存 动态密匙,以保证解密正确 $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string; $string_length = strlen($string); $result = ''; $box = range(0, 255); $rndkey = array(); // 产生密匙簿 for($i = 0; $i <= 255; $i++) { $rndkey[$i] = ord($cryptkey[$i % $key_length]); } // 用固定的算法,打乱密匙簿,增加随机性,好像很复杂,实际上对并不会增加密文的强度 for($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $rndkey[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } // 核心加解密部分 for($a = $j = $i = 0; $i < $string_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; // 从密匙簿得出密匙进行异或,再转成字符 $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); } if($operation == 'DECODE') { // 验证数据有效性,请看未加密明文的格式 if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { return substr($result, 26); } else { return ''; } } else { // 把动态密匙保存在密文里,这也是为什么同样的明文,生产不同密文后能解密的原因 // 因为加密后的密文可能是一些特殊字符,复制过程可能会丢失,所以用base64编码 return $keyc.str_replace('=', '', base64_encode($result)); } }
$string im Funktionsauthentifizierungscode ($string, $operation, $key, $expiry): String, Klartext oder Chiffriertext; $operation: DECODE bedeutet Entschlüsselung, other bedeutet Verschlüsselung; $key: geheimer Schlüssel; $expiry: Gültigkeitsdauer des Chiffriertextes.
Verwendung:
$str = 'abcdef'; $key = 'www.helloweba.com'; echo authcode($str,'ENCODE',$key,0); //加密 $str = '56f4yER1DI2WTzWMqsfPpS9hwyoJnFP2MpC8SOhRrxO7BOk'; echo authcode($str,'DECODE',$key,0); //解密
2. Verschlüsselungs- und Entschlüsselungsfunktion encrypt():
function encrypt($string,$operation,$key=''){ $key=md5($key); $key_length=strlen($key); $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string; $string_length=strlen($string); $rndkey=$box=array(); $result=''; for($i=0;$i<=255;$i++){ $rndkey[$i]=ord($key[$i%$key_length]); $box[$i]=$i; } for($j=$i=0;$i<256;$i++){ $j=($j+$box[$i]+$rndkey[$i])%256; $tmp=$box[$i]; $box[$i]=$box[$j]; $box[$j]=$tmp; } for($a=$j=$i=0;$i<$string_length;$i++){ $a=($a+1)%256; $j=($j+$box[$a])%256; $tmp=$box[$a]; $box[$a]=$box[$j]; $box[$j]=$tmp; $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256])); } if($operation=='D'){ if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){ return substr($result,8); }else{ return''; } }else{ return str_replace('=','',base64_encode($result)); } }
$string in function encrypt($string,$operation,$key ) : Die Zeichenfolge, die verschlüsselt und entschlüsselt werden muss; $operation: Bestimmen Sie, ob verschlüsselt oder entschlüsselt werden soll. E bedeutet Verschlüsselung, D bedeutet Entschlüsselung. $key: Schlüssel.
Verwendung:
$str = 'abc'; $key = 'www.helloweba.com'; $token = encrypt($str, 'E', $key); echo '加密:'.encrypt($str, 'E', $key); echo '解密:'.encrypt($str, 'D', $key);
Weitere zwei klassische PHP-Verschlüsselungs- und Entschlüsselungsfunktionen finden Sie auf der chinesischen PHP-Website für verwandte Artikel.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Dieser Artikel ist ein Tutorial zum Verschlüsseln und Entschlüsseln von Dateien ohne die Verwendung von Verschlüsselungs- und Entschlüsselungstools von Drittanbietern. Ein Tutorial zum Hinzufügen von Verschlüsselungs- und Entschlüsselungsmethoden zum Rechtsklick-Menü von Win11 Erstellen Sie ein Backup, bevor Sie fortfahren. 1. Drücken Sie zunächst die Tastenkombination [Win+R] auf der Tastatur, um Ausführen zu öffnen, geben Sie dann den Befehl [regedit] ein und drücken Sie [OK oder Enter], um den Registrierungseditor zu öffnen muss zugelassen werden Nimmt diese App Änderungen an Ihrem Gerät vor? Klicken Sie auf [Ja]; 3. Erweitern Sie das Fenster des Registrierungseditors auf den folgenden Pfad: HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr

Verschlüsseln und Entschlüsseln sensibler Daten mithilfe der Yii-Framework-Middleware Einführung: In modernen Internetanwendungen sind Datenschutz und Datensicherheit sehr wichtige Themen. Um sicherzustellen, dass die sensiblen Daten der Benutzer nicht für unbefugte Besucher zugänglich sind, müssen wir diese Daten verschlüsseln. Das Yii-Framework bietet uns eine einfache und effektive Möglichkeit, die Funktionen zum Verschlüsseln und Entschlüsseln sensibler Daten zu implementieren. In diesem Artikel erfahren Sie, wie Sie dies mithilfe der Middleware des Yii-Frameworks erreichen. Einführung in das Yii-Framework Das Yii-Framework ist ein leistungsstarkes PHP-Framework.

Titel: Datenverschlüsselung und -entschlüsselung mit ReactQuery und Datenbank Einführung: In diesem Artikel wird erläutert, wie Sie ReactQuery und Datenbank für die Datenverschlüsselung und -entschlüsselung verwenden. Wir werden ReactQuery als Datenverwaltungsbibliothek verwenden und es mit der Datenbank kombinieren, um Datenverschlüsselungs- und -entschlüsselungsvorgänge durchzuführen. Durch die Kombination dieser beiden Technologien können wir sensible Daten sicher speichern und übertragen und bei Bedarf Verschlüsselungs- und Entschlüsselungsvorgänge durchführen, um die Datensicherheit zu gewährleisten. Text: 1. ReactQue

Da WeChat-Miniprogramme auf dem Markt für mobile Anwendungen immer beliebter werden, erhält auch ihre Entwicklung immer mehr Aufmerksamkeit. In kleinen Programmen wird häufig PHP als häufig verwendete Backend-Sprache verwendet, um die Ver- und Entschlüsselung sensibler Daten zu übernehmen. In diesem Artikel wird erläutert, wie Sie mit PHP die Verschlüsselung und Entschlüsselung im WeChat-Applet implementieren. 1. Was sind Verschlüsselung und Entschlüsselung? Unter Verschlüsselung versteht man die Umwandlung sensibler Daten in eine unlesbare Form, um sicherzustellen, dass die Daten während der Übertragung nicht gestohlen oder manipuliert werden. Unter Entschlüsselung versteht man die Wiederherstellung verschlüsselter Daten in Originaldaten. In kleinen Programmen umfassen die Verschlüsselung und Entschlüsselung normalerweise

PHP-Postfachentwicklung: E-Mail-Verschlüsselungs- und Entschlüsselungsfunktionen realisieren Mit der zunehmenden Entwicklung der Informationsübertragung ist E-Mail zu einer der wichtigsten Kommunikationsmethoden für Menschen geworden. Die daraus resultierenden Sicherheitsprobleme haben jedoch nach und nach die Aufmerksamkeit der Menschen auf sich gezogen. Um die Sicherheit von E-Mails zu gewährleisten, sind Verschlüsselung und Entschlüsselung zu wichtigen Aspekten beim Senden und Empfangen von E-Mails geworden. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP E-Mail-Verschlüsselungs- und -Entschlüsselungsfunktionen entwickeln, um die E-Mail-Sicherheit zu verbessern. 1. Prinzip und Funktion der Verschlüsselung Die E-Mail-Verschlüsselung besteht darin, den E-Mail-Inhalt mithilfe eines bestimmten Algorithmus so umzuwandeln, dass er zusätzlich zum Empfänger gelangt

Beispiele für die Datenverschlüsselung und -entschlüsselung beim Andocken der Tencent Cloud Server-API-Schnittstelle in PHP Mit der weit verbreiteten Anwendung von Cloud-Servern haben immer mehr Entwickler damit begonnen, ihre Anwendungen auf Cloud-Servern bereitzustellen. Bei der Verbindung mit der Tencent Cloud-Server-API-Schnittstelle ist die Datenverschlüsselung und -entschlüsselung eine wichtige Verbindung. In diesem Artikel wird ein Beispiel für die Datenverschlüsselung und -entschlüsselung in PHP vorgestellt. Bei der Verbindung mit der API-Schnittstelle des Tencent Cloud-Servers müssen wir normalerweise einige vertrauliche Daten verschlüsseln, um die Datensicherheit zu gewährleisten. Gleichzeitig ist es auch notwendig, abzuholen

Die Java-Funktionsbibliothek bietet eine Fülle von Verschlüsselungs- und Entschlüsselungstools, darunter JCE, JCA, Apache CommonsCrypt usw. JCE stellt Verschlüsselungsalgorithmen und -funktionen bereit, JCA stellt Schnittstellen für den Zugriff auf Verschlüsselungsdienstanbieter bereit und Apache CommonsCrypt enthält weitere Verschlüsselungsalgorithmen und -tools. Der praktische Fall zeigt, wie man mit JCE Text mit AES verschlüsselt und Base64-codierten Chiffretext generiert.

Wie verwende ich das SectionReader-Modul von Go, um den Inhalt eines bestimmten Teils einer Datei zu ver- und entschlüsseln? Einführung: In der Entwicklung ist die Verschlüsselung und Entschlüsselung von Dateiinhalten eine sehr häufige Anforderung. Die Go-Sprache bietet eine Fülle von Bibliotheken und Modulen, um diesen Bedarf zu decken. Unter diesen ist SectionReader ein sehr praktisches Modul, mit dem wir den Inhaltsbereich einer großen Datei angeben und Lese-, Verschlüsselungs- und Entschlüsselungsvorgänge durchführen können. In diesem Artikel wird erläutert, wie Sie das SectionReader-Modul von Go zur Implementierung verwenden
