Heim > Artikel > Backend-Entwicklung > Implementierung eines symmetrischen Verschlüsselungsalgorithmus in PHP
Vor Kurzem wollte ich plötzlich einige vertrauliche Dinge in der Datenbank speichern und habe dann darüber nachgedacht, wie ich verhindern kann, dass andere die gespeicherten Daten auch dann verstehen, wenn sie in die Datenbank gelangen. Die einzige Möglichkeit besteht also darin, sie zu verschlüsseln, aber wir tun es immer noch Wir müssen es selbst lesen. Dann können wir nur einige symmetrische Verschlüsselungsalgorithmen finden und es dann entschlüsseln, wenn wir es sehen möchten. Im Folgenden wird die Implementierung eines einfachen symmetrischen Verschlüsselungsalgorithmus in PHP vorgestellt.
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 Verarbeitungen durchzuführen, um 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 wird, 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();Im obigen Algorithmus können wir siehe: Wir fügen den von uns im Voraus festgelegten Schlüssel in die von
generierten Zeichen ein und ersetzen dann die darin enthaltenen Sonderzeichen. Selbst wenn andere eine solche Zeichenfolge sehen, wissen sie nicht, was es ist. Natürlich können wir hier geringfügige Verbesserungen vornehmen, z. B. den Schlüssel rückwärts in die Zeichenfolge einfügen, den Schlüssel mit Base64 versehen und ihn dann einfügen usw., den Schlüssel einfügen und ihn dann erneut mit Base64 versehen. base64_encode()
PHP verwendet einen rekursiven Algorithmus Unendliche Durchquerung von Arrays
Häufig verwendete Sortierung in PHPAlgorithmusDetaillierte Erklärung von Beispielen
Häufig verwendete PHP-SortierungAlgorithmenDetaillierte Erklärung von Beispielen für Datenstrukturen
Das obige ist der detaillierte Inhalt vonImplementierung eines symmetrischen Verschlüsselungsalgorithmus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!