Home > Article > Backend Development > PHP supports Chinese and English encryption and decryption codes_PHP tutorial
The PHP encryption class shared in this article is a PHP implementation class file that can support Chinese and English encryption and decryption. Students in need can refer to it, but it is best to set the document encoding to UTF-8. .
Save the following code into the MD5Crypt.class.php file
代码如下 | 复制代码 |
class MD5Crypt { /** * Enter description here ... * @param unknown_type $str * @return string */ public final static function mdsha($str) { $code = substr ( md5 ( $str ), 10 ); $code .= substr ( sha1 ( $str ), 0, 28 ); $code .= substr ( md5 ( $str ), 0, 22 ); $code .= substr ( sha1 ( $str ), 16 ) . md5 ( $str ); return self::chkToken () ? $code : null; } /** * Enter description here ... * @param unknown_type $param */ private final static function chkToken() { return true; } /** * Enter description here ... * @param unknown_type $txt * @param unknown_type $encrypt_key * @return Ambigous */ private final static 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; } /** * Enter description here ... * @param unknown_type $txt * @param unknown_type $key * @return string */ public final static function Encrypt($txt, $key) { 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 ++; } $_code = md5 ( $encrypt_key ) . base64_encode ( self::keyED ( $tmp, $key ) ) . md5 ( $encrypt_key . $key ); return self::chkToken () ? $_code : null; } /** * Enter description here ... * @param unknown_type $txt * @param unknown_type $key * @return Ambigous */ public final static function Decrypt($txt, $key) { $txt = self::keyED ( base64_decode ( substr ( $txt, 32, - 32 ) ), $key ); $tmp = ""; for($i = 0; $i < strlen ( $txt ); $i ++) { $md5 = substr ( $txt, $i, 1 ); $i ++; $tmp .= (substr ( $txt, $i, 1 ) ^ $md5); } return self::chkToken () ? $tmp : null; } /** * Enter description here ... * @var unknown_type */ private static $_key = 'lau'; } ?> |
Usage
代码如下 | 复制代码 |
define ( 'WORKSPACE', '.' . DIRECTORY_SEPARATOR ); header ( "Content-Type: text/html; charset=utf-8" ); include_once 'Core/Library/MD5Crypt.class.php'; $a = MD5Crypt::Encrypt ( "A", 100 ); echo "EnCode:" . $a, " "; echo "DeCode:" . MD5Crypt::Decrypt ( $a, 100 ); ?> |