PHP实现加强版加密解密类实例 本文实例讲述了PHP实现加强版加密解密类.分享给大家供大家参考.具体如下: ?php class Ender{ private $enkey;//加密解密用的密钥 private $rep_char='#'; //替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的, //这里可以用
本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下:
<?php
class Ender{
private $enkey;//加密解密用的密钥
private $rep_char='#';
//替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的,
//这里可以用一个允许的字符作为替换。
//构造参数是密钥
public function __construct($key=''){
if(!$key){
$this->enkey=$key;
}
}
//设置密钥http://blog.ddian.cn
public function set_key($key){
$this->enkey=$key;
}
private 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;
}
//加密字符串
public function encrypt($txt,$key='')
{
if(!$key){
$key=$this->enkey;
}
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++;
}
$r=base64_encode($this->keyED($tmp,$key));
$r=str_replace('=',$this->rep_char,$r);
return $r;
}
//解密字符串
public function decrypt($txt,$key='')
{
$txt=str_replace($this->rep_char,'=',$txt);
$txt=base64_decode($txt);
if(!$key){
$key=$this->enkey;
}
$txt = $this->keyED($txt,$key);
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}
}
希望本文所述对大家的php程序设计有所帮助。
沃梦达教程
本文标题为:PHP实现加强版加密解密类实例
猜你喜欢
- PHP中PDO事务处理操作示例 2022-10-15
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境) 2023-09-02
- PHP仿tp实现mvc框架基本设计思路与实现方法分析 2022-10-18
- php微信公众号开发之秒杀 2022-11-23
- 用nohup命令实现PHP的多进程 2023-09-02
- laravel通用化的CURD的实现 2023-03-17
- laravel实现按月或天或小时统计mysql数据的方法 2023-02-22
- PHP实现微信支付(jsapi支付)流程步骤详解 2022-10-09
- PHP简单实现二维数组的矩阵转置操作示例 2022-10-02
- Laravel balde模板文件中判断数据为空方法 2023-08-30