Example Analysis of encryption and decryption Class in PHP
Editor to share with you the PHP encryption and decryption class example analysis, I believe that most people do not know much about it, so share this article for your reference, I hope you will learn a lot after reading this article, let's go to know it!
The specific analysis is as follows:
This code supports array encryption, ciphertext validity, and all kinds of symmetric encryption
The parameters are as follows:
* @ use ption::en ($string, $key)
* @ param String $string requires encrypted strings
* @ param String $skey key
* @ param int $expiry ciphertext is valid for encryption (in seconds). 0 is permanent.
* @ return String
1. The php code is as follows:
/ * *-tool library-encryption password * / class ption {private static $original = array ('=','+','/'); private static $later = array ('O0O0OO,' o0O0OO, '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 string to be encrypted * @ param String $skey key * @ param int $expiry ciphertext valid, valid in seconds, 0 is permanent * @ 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;}}
two。 The usage is as follows:
$str ['username'] =' oschina';$str ['pw'] =' 123456 'huoxin'] ='! @ # $% ^ &'; echo "string:". $str. Echo "encode:". ($enstring = ption::en ($str). Echo "decode:". Ption::de ($enstring); the above is all the content of the article "sample Analysis of encryption and decryption classes in PHP". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!