Home > Article > Backend Development > PHP encryption and decryption class example analysis_PHP tutorial
This article mainly introduces the PHP encryption and decryption class. The example analyzes the principles and related techniques of PHP encryption and decryption, which is of great practical value. , friends in need can refer to it
This article describes the PHP encryption and decryption class with examples. Share it with everyone for your reference. The specific analysis is as follows:
This code supports array encryption, ciphertext validity period, and various symmetric encryption
The parameters are as follows:
* @use ption::en($string, $key);
* @param String $string The string that needs to be encrypted
* @param String $skey key
* @param int $expiry Ciphertext validity period, valid when encrypted, in seconds, 0 means permanent validity
* @return String
1. The php code is as follows:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
/* * -Tool Library-Encryption and Decryption Password */ 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 The string that needs to be encrypted * @param String $skey key * @param int $expiry Ciphertext validity period, valid when encrypted, in seconds, 0 means permanent validity * @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 The string to be decrypted * @param String $skey key * @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; } } } |
2. 用法如下:
?
2 3
|