Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert eine einfache symmetrische Verschlüsselung

PHP implementiert eine einfache symmetrische Verschlüsselung

*文
*文Original
2018-01-02 16:13:363735Durchsuche

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 = &#39;&#39;, $skey = &#39;wenzi&#39;) {
 $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(&#39;=&#39;, &#39;+&#39;, &#39;/&#39;), array(&#39;O0O0O&#39;, &#39;o000o&#39;, &#39;oo00o&#39;), join(&#39;&#39;, $strArr));
 }

 /**
 * 简单对称加密算法之解密
 * @param String $string 需要解密的字串
 * @param String $skey 解密KEY
 * @return String
 */
 function decode($string = &#39;&#39;, $skey = &#39;wenzi&#39;) {
 $strArr = str_split(str_replace(array(&#39;O0O0O&#39;, &#39;o000o&#39;, &#39;oo00o&#39;), array(&#39;=&#39;, &#39;+&#39;, &#39;/&#39;), $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(&#39;&#39;, $strArr));
 }

 echo &#39;<pre class="brush:php;toolbar:false">&#39;;
 echo "string : " . $content . " <br />";
 echo "encode : " . ($enstring = encode($content)) . &#39;<br />&#39;;
 echo "decode : " . decode($enstring);

 exit();
Im obigen Algorithmus können wir sehen: Wir fügen die von Wir legen den Schlüssel im Voraus fest und ersetzen dann die Sonderzeichen darin. Auch 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. Nach dem Einfügen des Schlüssels erneut Base64 erstellen.

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.

Verwandte Empfehlungen:


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!

Stellungnahme:
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