Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierungsfähigkeiten im Zusammenhang mit der PHP-Verschlüsselung und -Entschlüsselung

Implementierungsfähigkeiten im Zusammenhang mit der PHP-Verschlüsselung und -Entschlüsselung

墨辰丷
墨辰丷Original
2018-06-08 11:37:081648Durchsuche

In diesem Artikel werden hauptsächlich die Implementierungsfähigkeiten im Zusammenhang mit der PHP-Verschlüsselung und -Entschlüsselung vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Die Details sind wie folgt:

<?php
class Ender{
  private $enkey;//加密解密用的密钥
  private $rep_char=&#39;#&#39;;
  //替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的,
  //这里可以用一个允许的字符作为替换。
  //构造参数是密钥
  public function __construct($key=&#39;&#39;){
    if(!$key){
      $this->enkey=$key;
    }
  }
  //设置密钥http://blog.ddian.cn
  public function set_key($key){
    $this->enkey=$key;
  }
  private function keyED($txt,$encrypt_key) 
  { 
  $encrypt_key = md5($encrypt_key); 
  $ctr=0; 
  $tmp = ""; 
  for ($i=0;$i<strlen($txt);$i++) 
  { 
  if ($ctr==strlen($encrypt_key)) $ctr=0; 
  $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); 
  $ctr++; 
  } 
  return $tmp;
  }
  //加密字符串
  public function encrypt($txt,$key=&#39;&#39;) 
  {
  if(!$key){
    $key=$this->enkey;
  }
  srand((double)microtime()*1000000); 
  $encrypt_key = md5(rand(0,32000)); 
  $ctr=0; 
  $tmp = ""; 
  for ($i=0;$i<strlen($txt);$i++) 
  { 
  if ($ctr==strlen($encrypt_key)) $ctr=0; 
  $tmp.= substr($encrypt_key,$ctr,1) . 
  (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); 
  $ctr++; 
  }
  $r=base64_encode($this->keyED($tmp,$key));
  $r=str_replace(&#39;=&#39;,$this->rep_char,$r);
  return $r; 
  }
  //解密字符串
  public function decrypt($txt,$key=&#39;&#39;) 
  {
  $txt=str_replace($this->rep_char,&#39;=&#39;,$txt);
  $txt=base64_decode($txt);
  if(!$key){
      $key=$this->enkey;
  }
  $txt = $this->keyED($txt,$key); 
  $tmp = ""; 
  for ($i=0;$i<strlen($txt);$i++) 
  { 
  $md5 = substr($txt,$i,1); 
  $i++; 
  $tmp.= (substr($txt,$i,1) ^ $md5); 
  } 
  return $tmp; 
  }
}

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird hilfreich sein jedermanns Arbeitszimmer.

Verwandte Empfehlungen:

So fügen Sie Wasserzeichen zu Bildern mit dem MagickWand-Modul in PHP hinzu

Mit Curl in PHP Die Funktion des Fälschens von IP

PHPs Beurteilung der aktuellen Codierung und der entsprechenden Implementierungsfähigkeiten für die Codierungskonvertierung

Das obige ist der detaillierte Inhalt vonImplementierungsfähigkeiten im Zusammenhang mit der PHP-Verschlüsselung und -Entschlü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