php用户验证base64验证方法
作者:只都是孩子Whitney | 来源:互联网 | 2014-08-27 17:10
functiondsetcookie($var,$value,$life=0,$prefix=1){global$cookiedomain,$cookiepath,$addtime,$_server;setcookie($var,$value,$life?$a...
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
php 用户验证 base64验证方法
发布: 来源: 添加日期:2014-08-25 10:54:18 浏览: 评论:0
- function dsetCOOKIE($var, $value, $life = 0, $prefix = 1) {
- global $COOKIEdomain, $COOKIEpath, $addtime, $_server;
- setCOOKIE($var, $value,$life ? $addtime + $life : 0, $COOKIEpath,$COOKIEdomain, $_server['server_port'] == 443 ? 1 : 0);
- }
-
- function authcode($string, $operation = 'decode', $key = '', $expiry = 0) {
- global $webaddr;
- $auth_key=md5($webaddr);
- $ckey_length = 4;
- $key = md5($key ? $key : $auth_key);
- $keya = md5(substr($key, 0, 16));
- $keyb = md5(substr($key, 16, 16));
- $keyc = $ckey_length ? ($operation == 'decode' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
- $cryptkey = $keya.md5($keya.$keyc);
- $key_length = strlen($cryptkey);
- $string = $operation == 'decode' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
- $string_length = strlen($string);
- $result = '';
- $box = range(0, 255);
- $rndkey = array();
- for($i = 0; $i <= 255; $i++) {
- $rndkey[$i] = ord($cryptkey[$i % $key_length]);
- }
- for($j = $i = 0; $i < 256; $i++) {
- $j = ($j + $box[$i] + $rndkey[$i]) % 256;
- $tmp = $box[$i];
- $box[$i] = $box[$j];
- $box[$j] = $tmp;
- }
- for($a = $j = $i = 0; $i < $string_length; $i++) {
- $a = ($a + 1) % 256;
- $j = ($j + $box[$a]) % 256;
- $tmp = $box[$a];
- $box[$a] = $box[$j];
- $box[$j] = $tmp;
- $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
- }
- if($operation == &#39;decode&#39;) {
- if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
- return substr($result, 26);
- } else {
- return &#39;&#39;;
- }
- } else {
- return $keyc.str_replace(&#39;=&#39;, &#39;&#39;, base64_encode($result));
- }
- }
推荐阅读
-
本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ...
[详细]
蜡笔小新 2024-11-24 11:25:08
-
本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ...
[详细]
蜡笔小新 2024-11-24 09:54:53
-
-
本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ...
[详细]
蜡笔小新 2024-11-24 09:51:34
-
本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ...
[详细]
蜡笔小新 2024-11-23 19:57:51
-
权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ...
[详细]
蜡笔小新 2024-11-23 16:30:15
-
本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ...
[详细]
蜡笔小新 2024-11-23 15:50:03
-
本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ...
[详细]
蜡笔小新 2024-11-23 15:39:25
-
本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ...
[详细]
蜡笔小新 2024-11-23 12:47:16
-
本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ...
[详细]
蜡笔小新 2024-11-24 12:55:24
-
本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ...
[详细]
蜡笔小新 2024-11-24 10:12:21
-
本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ...
[详细]
蜡笔小新 2024-11-23 17:16:33
-
本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ...
[详细]
蜡笔小新 2024-11-23 17:00:59
-
本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ...
[详细]
蜡笔小新 2024-11-23 13:45:37
-
本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ...
[详细]
蜡笔小新 2024-11-23 11:40:33
-
本文介绍了如何通过修改/etc/resolv.conf文件来解决Linux系统中wget命令无法解析主机名的问题,通过添加Google的公共DNS服务器地址作为解决方案。 ...
[详细]
蜡笔小新 2024-11-23 11:36:07
-
只都是孩子Whitney
这个家伙很懒,什么也没留下!