时间:2021-07-01 10:21:17 帮助过:9人阅读
- <br><?php <br>/** <br>* Copyright (c) 2011 - 01 XatuDream <br>* XatuDream All Rights Reserved. <br>* Support:185390516.qzone.qq.com <br>* QQ:185390516 <br>* Author:Lau Version:1.01 <br>* Date:2010-08-12 09:28:32 <br>*/ <br>! defined ( 'WORKSPACE' ) && exit ( "Access Denied !" ); <br>class MD5Crypt { <br>/** <br>* Enter description here ... <br>* @param unknown_type $str <br>* @return string <br>*/ <br>public final static function mdsha($str) { <br>$code = substr ( md5 ( $str ), 10 ); <br>$code .= substr ( sha1 ( $str ), 0, 28 ); <br>$code .= substr ( md5 ( $str ), 0, 22 ); <br>$code .= substr ( sha1 ( $str ), 16 ) . md5 ( $str ); <br>return self::chkToken () ? $code : null; <br>} <br>/** <br>* Enter description here ... <br>* @param unknown_type $param <br>*/ <br>private final static function chkToken() { <br>return true; <br>} <br>/** <br>* Enter description here ... <br>* @param unknown_type $txt <br>* @param unknown_type $encrypt_key <br>* @return Ambigous <string, boolean> <br>*/ <br>private final static function keyED($txt, $encrypt_key) { <br>$encrypt_key = md5 ( $encrypt_key ); <br>$ctr = 0; <br>$tmp = ""; <br>for($i = 0; $i < strlen ( $txt ); $i ++) { <br>if ($ctr == strlen ( $encrypt_key )) <br>$ctr = 0; <br>$tmp .= substr ( $txt, $i, 1 ) ^ substr ( $encrypt_key, $ctr, 1 ); <br>$ctr ++; <br>} <br>return $tmp; <br>} <br>/** <br>* Enter description here ... <br>* @param unknown_type $txt <br>* @param unknown_type $key <br>* @return string <br>*/ <br>public final static function Encrypt($txt, $key) { <br>srand ( ( double ) microtime () * 1000000 ); <br>$encrypt_key = md5 ( rand ( 0, 32000 ) ); <br>$ctr = 0; <br>$tmp = ""; <br>for($i = 0; $i < strlen ( $txt ); $i ++) { <br>if ($ctr == strlen ( $encrypt_key )) <br>$ctr = 0; <br>$tmp .= substr ( $encrypt_key, $ctr, 1 ) . (substr ( $txt, $i, 1 ) ^ substr ( $encrypt_key, $ctr, 1 )); <br>$ctr ++; <br>} <br>$_code = md5 ( $encrypt_key ) . base64_encode ( self::keyED ( $tmp, $key ) ) . md5 ( $encrypt_key . $key ); <br>return self::chkToken () ? $_code : null; <br>} <br>/** <br>* Enter description here ... <br>* @param unknown_type $txt <br>* @param unknown_type $key <br>* @return Ambigous <string, boolean> <br>*/ <br>public final static function Decrypt($txt, $key) { <br>$txt = self::keyED ( base64_decode ( substr ( $txt, 32, - 32 ) ), $key ); <br>$tmp = ""; <br>for($i = 0; $i < strlen ( $txt ); $i ++) { <br>$md5 = substr ( $txt, $i, 1 ); <br>$i ++; <br>$tmp .= (substr ( $txt, $i, 1 ) ^ $md5); <br>} <br>return self::chkToken () ? $tmp : null; <br>} <br>/** <br>* Enter description here ... <br>* @var unknown_type <br>*/ <br>private static $_key = 'lau'; <br>} <br>?> <br> <br>使用方法: <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br><?php //Code Start <br>/** <br>* Copyright (c) 2011 XatuDream <br>* XatuDream All Rights Reserved. <br>* Support:185390516.qzone.qq.com <br>* QQ:185390516 <br>* Author:LoveCrystal Version:1.01 <br>* Date:2011-9-2 04:00:37 <br>*/ <br>define ( 'WORKSPACE', '.' . DIRECTORY_SEPARATOR ); <br>header ( "Content-Type: text/html; charset=utf-8" ); <br>include_once 'Core/Library/MD5Crypt.class.php'; <br>$a = MD5Crypt::Encrypt ( "A", 100 ); <br>echo "EnCode:" . $a, "<br />"; <br>echo "DeCode:" . MD5Crypt::Decrypt ( $a, 100 ); <br>?> <br></li><li> </li><li> </li></ol></pre>