支持中文的php加密解密类代码

 更新时间:2011年11月27日 16:33:42   作者:  
支持中文的php加密解密类代码,需要的朋友可以参考下。
php代码类:
复制代码 代码如下:

<?php
/**
* Copyright (c) 2011 - 01 XatuDream
* XatuDream All Rights Reserved.
* Support:185390516.qzone.qq.com
* QQ:185390516
* Author:Lau Version:1.01
* Date:2010-08-12 09:28:32
*/
! defined ( 'WORKSPACE' ) && exit ( "Access Denied !" );
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 <string, boolean>
*/
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 <string, boolean>
*/
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';
}
?>

使用方法:
复制代码 代码如下:

<?php //Code Start
/**
* Copyright (c) 2011 XatuDream
* XatuDream All Rights Reserved.
* Support:185390516.qzone.qq.com
* QQ:185390516
* Author:LoveCrystal Version:1.01
* Date:2011-9-2 04:00:37
*/
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, "<br />";
echo "DeCode:" . MD5Crypt::Decrypt ( $a, 100 );
?>

相关文章

  • php自定义函数实现二维数组排序功能

    php自定义函数实现二维数组排序功能

    这篇文章主要介绍了php自定义函数实现二维数组排序功能,涉及php针对数组的判断、遍历、转换、排序等相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • THINKPHP支持YAML配置文件的设置方法

    THINKPHP支持YAML配置文件的设置方法

    这篇文章主要介绍了THINKPHP支持YAML配置文件的设置方法,本文讲解了为什么要用 yaml以及在THINKPHP中的配置方法,需要的朋友可以参考下
    2015-03-03
  • php使用redis的几种常见操作方式和用法示例

    php使用redis的几种常见操作方式和用法示例

    这篇文章主要介绍了php使用redis的几种常见操作方式和用法,结合实例形式总结分析了PHP使用redis实现字符串缓存、队列模拟、乐观锁与悲观锁实现、发布和订阅等相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • PHP实现时间轴函数代码

    PHP实现时间轴函数代码

    我们在论坛发帖、发表评论、或者是使用QQ空间发布日志、微博发表言论时,会看到发表的内容后的时间显示为“刚刚”、“5分钟前”、“昨天10:23”等,而不是直接显示具体日期和时间
    2011-10-10
  • 基于win2003虚拟机中apache服务器的访问

    基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别

    php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和m

    mysql_fetch_object() 和 mssql_fetch_array类似,只有一点区别,即返回一个对象而不是数组,并将字段名字做为属性。间接地也意味着只能通过字段名来访问,而不是偏移量
    2012-08-08
  • 一个经典实用的PHP图像处理类分享

    一个经典实用的PHP图像处理类分享

    这篇文章主要介绍了一个经典实用的PHP图像处理类分享,本文提供的PHP图像操作类可以满足网站中的大部分功能需求,如图片的缩放、加水印和裁剪等功能,需要的朋友可以参考下
    2014-11-11
  • PHP 柱状图实现代码

    PHP 柱状图实现代码

    利用imagefilledrectugle的函数来画出矩形,实现柱状图,具体的代码里面都加入了详细的注释。
    2009-12-12
  • 解析CodeIgniter自定义配置文件

    解析CodeIgniter自定义配置文件

    本篇文章是对CodeIgniter自定义配置文件进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php横向重复区域显示二法

    php横向重复区域显示二法

    图片横向重复显示的实现方法
    2008-09-09

最新评论