Heim  >  Artikel  >  Backend-Entwicklung  >  Prinzipien und Verwendung der Verschlüsselung und Entschlüsselung in PHP

Prinzipien und Verwendung der Verschlüsselung und Entschlüsselung in PHP

墨辰丷
墨辰丷Original
2018-06-11 14:36:183048Durchsuche

Dieser Artikel stellt hauptsächlich die PHP-Verschlüsselungs- und Entschlüsselungsklasse vor. Er analysiert die Prinzipien und verwandten Techniken der PHP-Verschlüsselung und ist von großem praktischen Nutzen 🎜>Dieser Artikel beschreibt PHP mit Beispielen für die Verschlüsselung und Entschlüsselung. Die spezifische Analyse lautet wie folgt:

Dieser Code unterstützt Array-Verschlüsselung, Chiffretext-Gültigkeitsdauer und verschiedene symmetrische Verschlüsselungen

Die Parameter lauten wie folgt:

* @use Option: :en($ string, $key);

* @param String $string zu verschlüsselnde Zeichenfolge

* @param String $skey key
* @param int $expiry Chiffretext-Gültigkeitsdauer, gültig während der Verschlüsselung, in Sekunden ist 0 dauerhaft gültig
* @return String

1 Der PHP-Code lautet wie folgt:

/*
 * -工具库-加密解密码
*/
class ption
{
 private static $original = array('=', '+', '/');
 private static $later = array('O0O0O', 'o0O0o', 'oo00o');
 function __construct()
 {
 }
 private static function md5($skey = '')
 {
  $skey = $skey ? $skey : 'ui' ; //uicms::_config('security/authkey');
  return md5(substr($skey, 0, 16));
 }
 /**
 * @use ption::en($string, $key);
 * @param String $string 需要加密的字串
 * @param String $skey 密钥
 * @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效
 * @return String
 */
 static public function en($string = '', $skey = '', $expiry=0)
 {   
  if( is_array( $string ) )
  {
   $string = json_encode($string); // uicms::json($string, true, 'en');
  }     
  $string = str_pad($expiry ? $expiry + TIME : 0, 10, 0).$string;  
  $strArr = str_split(base64_encode($string));
  $strCount = count($strArr);  
  $skey = static::md5($skey);  
  foreach (str_split($skey) as $key => $value)
  {
   $key < $strCount && $strArr[$key].=$value;
  }
  return str_replace(self::$original, self::$later, join(&#39;&#39;, $strArr));
 }
 /**
 * @use ption::de($string, $key);
 * @param String $string 需要解密的字串
 * @param String $skey 密钥
 * @return String
 */
 static public function de($string = &#39;&#39;, $skey = &#39;&#39;)
 {   
  $strArr = str_split(str_replace(self::$later,self::$original,$string),2);
  $strCount = count($strArr);
  $skey = static::md5($skey);
  foreach (str_split($skey) as $key => $value)
  {
   $key < $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
  }   
  $result = base64_decode(join(&#39;&#39;, $strArr));
  if(substr($result, 0, 10) == 0 || substr($result, 0, 10) - TIME > 0)
  {
   return substr($result, 10);
  }
  else
  {
   return false;
  }   
 }  
}

2 >

Zusammenfassung

: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Grundkenntnisse des PHP-Flows

PHP stellt über Ajax-Aufrufe eine Verbindung zu Baidu-Effekten her Erkennung erreichen Funktion, ob die Website mit dem Internet verbunden ist

Ternärer Operator von PHP

Das obige ist der detaillierte Inhalt vonPrinzipien und Verwendung der Verschlüsselung und Entschlüsselung in PHP. 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