Cet article présente principalement la classe de cryptage et de décryptage PHP. Il analyse les principes et les techniques associées de cryptage et de décryptage en PHP avec des exemples. Il est d'une grande valeur pratique. Les amis qui en ont besoin peuvent s'y référer. 🎜>Cet article décrit PHP avec des exemples de classes de chiffrement et de décryptage. L'analyse spécifique est la suivante :
Ce code prend en charge le cryptage de tableau, la période de validité du texte chiffré et divers cryptages symétriques
Les paramètres sont les suivants :
* @use ption : :en($ string, $key);
* @param String $string chaîne à chiffrer* @param String $skey key
* @param int $période de validité du texte chiffré d'expiration, valable pendant le chiffrement, en secondes, 0 est valide en permanence
* @return String
1. Le code php est le suivant :
/* * -工具库-加密解密码 */ 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('', $strArr)); } /** * @use ption::de($string, $key); * @param String $string 需要解密的字串 * @param String $skey 密钥 * @return String */ static public function de($string = '', $skey = '') { $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('', $strArr)); if(substr($result, 0, 10) == 0 || substr($result, 0, 10) - TIME > 0) { return substr($result, 10); } else { return false; } } }
Résumé
: Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.$str['username'] = 'oschina'; $str['pw'] = '123456'; $str['huoxin'] = '!@#$%^&'; echo "string : " . $str . " <br />"; echo "encode : " . ($enstring = ption::en($str)) . '<br />'; echo "decode : " . ption::de($enstring);
Recommandations associées :
Connaissance de base du flux PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!