PHP加密解密内部算法
最近学习URL跳转的时候新进三个超好用的PHP加密解密函数,貌似是discuz里的…使用这些加密解密的原因是因为有时自己的URL地址被人获取以后想破解你里面传值的内容就必须知道你的key,没有key,他应该要破了一阵子才能知道你URL里面的内容吧...
闲话少说,先将它们打包成一个文件就叫fun.php吧
<?php
function passport_encrypt($txt, $key) {
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));
$ctr = 0;
$tmp = '';
for($i = 0;$i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
}
return base64_encode(passport_key($tmp, $key));
}
function passport_decrypt($txt, $key) {
$txt = passport_key(base64_decode($txt), $key);
$tmp = '';
for($i = 0;$i < strlen($txt); $i++) {
$md5 = $txt[$i];
$tmp .= $txt[++$i] ^ $md5;
}
return $tmp;
}
function passport_key($txt, $encrypt_key) {
$encrypt_key = md5($encrypt_key);
$ctr = 0;
$tmp = '';
for($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}
?>
以下是一些示例…加深对这三个加密解密函数的理解…
//string.php
<?php
include “fun.php”;
$txt = “This is a test”;
$key = “testkey”;
$encrypt = passport_encrypt($txt,$key);
$decrypt = passport_decrypt($encrypt,$key);
echo $txt.”<br><hr>”;
echo $encrypt.”<br><hr>”;
echo $decrypt.”<br><hr>”;
?>
//array.php
<?php
include “fun.php”;
$array = array(
"a" => "1",
"b" => "2",
"c" => "3",
"d" => "4"
);
//serialize产生一个可存储的值,返回一个字符串,unserialize还原
$txt = serialize($array);
$key = “testkey”;
$encrypt = passport_encrypt($txt,$key);
$decrypt = passport_decrypt($encrypt,$key);
$decryptArray = unserialize($
相关文档:
初学PHP的时候,我们经常被PHP的绝对路径和相对路径弄的晕头转向。路径问题经常导致include及require命令不能加载到指定的页
面,从而导致Web程序运行错误。本文将跟大家一起探讨一下PHP路径问题的常用解决方案。
下面我们先做一个个简单的示例:
上图是一个简单Web项目的结构图,其中各文件的代码如下: ......
最近在写一个 前台基于 javascript. 的客户端 服务器端PHP 的分析系统。
原先计划使用XML为数据交互基础 但是最终还是选用较轻量级的JSON最为数据交互基础。
首先介绍json的格式
json 说简单其实是一种数据格式 更简单的可以看做简单的数组。
实例 (一)
<script>
var jsonArray=[
......
因为只有iis6.0才带有web扩展。而iis6.0是默认安装在win2003的。winxp是不能安装iis6.0的。那我们就用iis5.1吧。
环境:WINXP+IIS5.1
开始之前请先确定你的IIS安装是否成功,能否通过http://localhost
来
访问
一、先到PHP官方网下载个php-5.2.5-Win32.zip
,点击这里链接到官
网下载地址
二、下载好之后,直接全部 ......
#
启动服务的用户和组
user
lighttpd lighttpd;
#
开多少进程
worker_processes
2;
#
错误日志
error_log
/data/log/nginx/nginx_error/nginx_error.log crit;
#
pid
pid
/var/run/nginx.pid;
#
Specifies
the value for maximum file descriptors t ......
php验证码显示红色叉叉
这个问题困扰我半天了。在本机上测试是正常的,环境是win2003+php+mssql.显示正常。
现在我把程序转移到新服务器上,验证码就不显示了,不知道是什么情况,我检测了服务器环境,gd是支持的,如下图:
但是,就是不显示,如有高手,请跟帖,谢谢了。 ......