Manchmal stoßen wir im Projekt auf Daten, die verschlüsselt werden müssen, aber wir müssen sie selbst entschlüsseln. Dann können wir nur einige symmetrische Verschlüsselungsalgorithmen finden und sie dann entschlüsseln, wenn wir sie sehen möchten. Dieser Artikel stellt die Implementierung eines einfachen symmetrischen Verschlüsselungsalgorithmus in PHP vor. Ich hoffe, dass er für alle hilfreich ist.
Vorwort
Ich habe im Internet einen guten symmetrischen Verschlüsselungsalgorithmus für PHP gefunden. In der PHP-Syntaxumgebung gibt es URL-Code und URL-Decode. base64_encode und base64_decode verfügen über eigene symmetrische Algorithmen. Diese integrierten Algorithmen können jedoch nicht als Verschlüsselungsalgorithmen bezeichnet werden, sondern nur als Codierungsmethoden. Aber wir können diese verwenden, um einige Verarbeitungsschritte durchzuführen und einfache Verschlüsselungs- und Entschlüsselungsalgorithmen zu implementieren.
Diesmal werden die Ver- und Entschlüsselungsalgorithmen mithilfe von base64 angepasst. Normalerweise verwenden wir die von base64_encode($str)
generierte Zeichenfolge. base64_decode()
kann jedoch wieder in unsere vorherige Zeichenfolge umgewandelt werden , und selbst wenn es umgedreht ist, ist es nicht unsere eigene Saite. base64_encode()
Der Beispielcode lautet wie folgt:
<?php $content = "大家好,我是中国人,你是谁"; /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param String $skey 加密EKY * @return String */ function encode($string = '', $skey = 'wenzi') { $strArr = str_split(base64_encode($string)); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key < $strCount && $strArr[$key].=$value; return str_replace(array('=', '+', '/'), array('O0O0O', 'o000o', 'oo00o'), join('', $strArr)); } /** * 简单对称加密算法之解密 * @param String $string 需要解密的字串 * @param String $skey 解密KEY * @return String */ function decode($string = '', $skey = 'wenzi') { $strArr = str_split(str_replace(array('O0O0O', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key <= $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0]; return base64_decode(join('', $strArr)); } echo '<pre class="brush:php;toolbar:false">'; echo "string : " . $content . " <br />"; echo "encode : " . ($enstring = encode($content)) . '<br />'; echo "decode : " . decode($enstring); exit();
base64_encode()
Natürlich ist die Entschlüsselung die entgegengesetzte Richtung der Verschlüsselung. Nachdem ich eine Weile nachgedacht hatte, wurde mir das Prinzip der Entschlüsselung klar: Bevor wir einige Zeichen in die Zeichenfolge eingefügt haben, müssen wir sie jetzt beim Entschlüsseln entfernen Gruppieren Sie zunächst die verschlüsselten Zeichenfolgen in jedem Array und bestimmen Sie dann, ob das zweite Zeichen im Schlüssel enthalten ist. Wenn ja, dann ist das erste Zeichen das Zeichen im ursprünglichen Base64.
PHP-Verschlüsselung und -Entschlüsselung
Wie PHP Passwörter besser verschlüsseln kann
So erhalten Sie detaillierte Flash-Daten in PHP
Das obige ist der detaillierte Inhalt vonPHP implementiert eine einfache symmetrische Verschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!