易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : php

PHP加密解密内部算法

http://www.dedecms.com/knowledge/program/php/2009/0929/51.html
来源:PHP100 作者:PHP100er 发表于:2009-09-29 11:05  点击:
2363
最近学习URL跳转的时候新进三个超好用的PHP加密解密函数,貌似是discuz里的使用这些加密解密的原因是因为有时自己的URL地址被人获取以后想破解你里面传值的内容就必须知道你的key,没有key,他应该要破了一阵子才能知道你URL里面的内容吧... 闲话少说,先将它
最近学习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, $k ......

discuz 经典php加密解密函数 authcode 解析

http://bbs.kl3w.com/thread-117-1-1.html
康盛的 authcode 函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,authcode 是使用异或运算进行加密和解密。
原理如下,假如:
加密
明文:1010 1001
密匙:1110 0011
密文:0100 1010
得出密文0100 1010,解密之需和密匙异或下就可以了
解密
密文:0100 1010
密匙:1110 0011
明文:1010 1001
并没有什么高深的算法,密匙重要性很高,所以,关键在于怎么生成密匙。
那我们一起看下康盛的authcode怎么做的吧
// 参数解释   
// $string: 明文 或 密文   
// $operation:DECODE表示解密,其它表示加密   
// $key: 密匙   
// $expiry:密文有效期   
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {   
    // 动态密匙长度,相同的明文会生成不同密文就是依靠动态密匙   
    $ckey_length = 4;   
      
    // 密匙   
    $k ......

PHP中插件机制的一种实现方案

http://www.phpip.com/program/php/A62010901P/25588.html
这篇文章的出发点是我对插件机制的理解,及其在PHP中的实现。此方案仅是插件机制在PHP中的实现方案之一,写下来和大家分享,欢迎大家一起讨论。
插件,亦即Plug-in,是指一类特定的功能模块(通常由第三方开发者实现),它的特点是:当你需要它的时候激活它,不需要它的时候禁用/删除它;且无论是激活还是禁用都不影响系统核心模块的运行,也就是说插件是一种非侵入式的模块化设计,实现了核心程序与插件程序的松散耦合。一个典型的例子就是Wordpress中众多的第三方插件,比如Akimet插件用于对用户的评论进行Spam过滤。
一个健壮的插件机制,我认为必须具备以下特点:
插件的动态监听和加载(Lookup)
插件的动态触发
以上两点的实现均不影响核心程序的运行
要在程序中实现插件,我们首先应该想到的就是定义不同的钩子(Hooks);“钩子”是一个很形象的逻辑概念,你可以认为它是系统预留的插件触发条件。它的逻辑原理如下:当系统执行到某个钩子时,会判断这个钩子的条件是否满足;如果满足,会转而先去调用钩子所制定的功能,然后返回继续执行余下的程序;如果不满足,跳过即可。这有点像汇编中的 ......

伪静态URL重写技术实现方法 php asp

 伪静态用到知识很简单一旦学会,快乐无穷,只需要正则和服务器设置。
 先说iis如何设置吧,往下看
 下载(IIS Rewrite模块): http://www.isapirewrite.com/,先把产品下载下来,安装在服务器上,记住目录,会有类似Rewrite.dll的文件生成,MMC→IIS信息服务管理器→网站→您的站点→属性,在“ISAPI筛选器”项点击 “添加”, 筛选器名称填入Rewrite,可执行文件为Rewrite.dll这个文件.
 然后修改httpd.ini配置文件,如果不太熟悉,就在http://www.isapirewrite.cn/docs看看手册,研究去,如此:
[ISAPI_Rewrite]
CacheClockRate 3600
RewriteRule ^(.*)/([a-z0-9A-Z\-]+\.html)$ $1/default.asp\?id=$2  
 这个配置好了就能在default.asp获取参数了,没问题把,顺便一说,正则用法里面最重要的符号^匹配开头,$匹配结尾,\w匹配任何字符,\s匹配空白,+匹配至少一,*匹配至少0,[x,]匹配至少x,()是分组技术,汗,这东西不说了,太弱了.
  下面说apache(Unix平台最流行的WEB服务器平台)的重写技术,基本类似,只不过,apaceh支持更灵活的.htaccess,你创建一个文件,文件名就是.htaccess:内容:
RewriteEngine On
......

伪静态URL重写技术实现方法 php asp

伪静态用到知识很简单一旦学会,快乐无穷,只需要正则和服务器设置。
  先说iis如何设置吧,往下看
  下载(IIS Rewrite模块): http://www.isapirewrite.com/,先把产品下载下来,安装在服务器上,记住目录,会有类似Rewrite.dll的文件生成,MMC→IIS信息服务管理器→网站→您的站点→属性,在“ISAPI筛选器”项点击 “添加”, 筛选器名称填入Rewrite,可执行文件为Rewrite.dl这个文件.
   然后修改httpd.ini配置文件,如果不太熟悉,就在http://www.isapirewrite.cn/docs看看手册,研究去,如此:
[ISAPI_Rewrite]
CacheClockRate 3600
RewriteRule ^(.*)/([a-z0-9A-Z\-]+\.html)$ $1/default.asp\?id=$2  
 这个配置好了就能在default.asp获取参数了,没问题把,顺便一说,正则用法里面最重要的符号^匹配开头,$匹配结尾,\w匹配任何字符,\s匹配空白,+匹配至少一,*匹配至少0,[x,]匹配至少x,()是分组技术,汗,这东西不说了,太弱了.
  下面说apache(Unix平台最流行的WEB服务器平台)的重写技术,基本类似,只不过,apaceh支持更灵活的.htaccess,你创建一个文件,文件名就是.htaccess:内容:
RewriteEngine On ......

php下载文件代码

一般的文件安全下载方法可以使用下面的代码:
1. <?php?
2.
3. $durl = 'file/phpcms2008_o2abf32efj883c91a.iso';
4. $filename = 'phpcms2008_o2abf32efj883c91a.iso';
5. $file = @fopen($durl, 'r');
6. header("Content-Type: application/octet-stream");
7. header("Accept-Ranges: bytes");
8. header("Accept-Length: ".filesize($durl));
9. header("Content-Disposition: attachment; filename=".$filename);
10. echo fread($file,filesize($durl));
11. fclose($file);
12. ?>
但是文件一大(超过php.ini配置的内存最大值),这里就出问题了,服务器会非常占用CPU资源,更重要的是文件不能正常下载,只能下载几十Kb的文件,明显不是预期想要的。
1. function download($url, $filename) {
2.
3. // 获得文件大小, 防止超过2G的文件, 用sprintf来读
4. $filesize = sprintf ( "%u", filesize ( $url ) );
5. if (! $filesize) {
6. return; ......
总记录数:2174; 总页数:363; 每页6 条; 首页 上一页 [83] [84] [85] [86] 87 [88] [89] [90] [91] [92]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号