首页 > 语言 > 关键词 > 加密解密最新资讯 > 正文

PHP加密解密内部算法

2010-04-21 17:12 · 稿源:网络转载

最近学习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($decrypt);

echo $txt.”<br><hr>”;
echo $encrypt.”<br><hr>”;
echo $decrypt.”<br><hr>”;
echo $decryptArray.”<br><hr>”;
?>

关键的地方来了当你要跳转到另外一个网址,但又要保证你的session无误的时候,你需要对session作一个处理.貌似一个公司有一个网站又有一个论坛,两个地方都有注册和登录,但又不想让用户在主页登录后跳转到论坛的时候session失效,即是登录一次跑完整间公司

那要怎样来处理用户的session呢

网页都是无状态的,如果要在新的网页中继续使用session,则需要把session从一个地方移到另一个地方,可能有些人已经想到了,我可以通过url传址的方式来调用它.而PHP有个处理session的变量,叫$_SESSION.于是将需要注册的session转换成一个数组吧.那么,你可以这样写:

//login.php
<?php
session_start();
include “fun.php”;
$_SESSION[“userid”];
$_SESSION[“username”];
$_SESSION[“userpwd”];

header("Location: http://$domain/process.php?s=".urlencode(passport_encrypt(serialize($_SESSION),"sessionkey")));
?>

上例中先用serialize将$_SESSION变成可存储的数据,然后通过passport_encrypt将这个数据加密,加urlencode的原因是因为$_SESSION加密时,有可能会产生像料想不到的编码,所以以防万一(事实证明非常有效)

处理下先

//process.php
<?php
session_start();
include “fun.php”;
$_SESSION=unserialize(passport_decrypt($_GET["s"],"sessionkey"));
header("Location: http://$domain/index.php");
?>

先用$_GET[“s”]获取URL的参数,然后用passport_decrypt将其解密,再用unserialize将其数据还原成原始数据,到了这步处理,你的网页就可能通过header自由跳转啦。

这种方法还涉及到安全性的问题,如果你的url地址在传址的过程中被人家获取的话,那就真的是不好意思了人家虽然可能破解不了url里边的内容,但人家也可以直接用这个url地址来登录你的一些个人账户啊,邮箱帐户啊甚至银行帐户(当然很少人会这样写,我例外,哈哈)听起来好怕.但其实你可以在跳转页面作取消session处理.

以下是加强版的process.php

<?php
session_start();
include_once "fun.php";
$_SESSION=unserialize(passport_decrypt($_GET["s"],"sessionkey"));
if((time()-$_SESSION["TIME"])>30){
header("Location: http://$domain/ login.php");
unset($_SESSION["USERNAME"]);
unset($_SESSION["PASSWORD"]);
}
else
header("Location: http://$domain/ index.php");
?>

写这个文件之前,你还要在登录那边设置

$_SESSION["TIME"] = time();

设置这个的原因主要是获取两边的时间,如果跳转的时候超过30秒的时候,你就可以让它跳转到login.php登录页面,网速慢的客户就不好意思啦但这也预防了如果此url被人获取,而这个人又没有在30秒内登录的话,那就不好意思啊,超时重新登录.

$_SESSION["USERNAME"]和$_SESSION["PASSWORD"] 这两个东东就是用户登录时需要输入的用户名和密码了.取消这两个session的原因就是因为如果你的url被人获取了,那个人虽然在超过30秒内跳转到loign.php的页面,但那些传过来的session依然有效,只要将url后缀login.php改为index.php.那他一样登录成功。

  • 相关推荐
  • 大家在看
  • 用php源码搭建二维码加密支付平台

    今天给大家介绍的项目-"用php源码搭建二维码加密支付平台",可以说,有一定的技术门槛,有一定的壁垒,因为需要搭建网站并且运营。正是因为有一定的门槛,需要学习和准备一些东西,才能挡住大多数用户的进入,才能长久的赚取利润。这些技术门槛,和需要准备的一些东西,我今天会详细的,手把手的教大家,如果你肯学习,并且有一定的网络基础,我相信可以很快突破难点,搭建成功。一旦搭建成功,运用一些推广的手段,后期

  • 加密行业的比尔·盖茨——赵长鹏

    得益于币安赵长鹏的正确领导,币安在全球化道路上遥遥领先于coinbase, huobi ,okex,国际化市场份额取得极其亮眼的成绩。而其首创的平台币BNB,也在平台币中处于龙头地位。目前币安又开启“开放式平台”商业模式,引领区块链行业发展进步。为此,很多人都对赵长鹏充满了疑问,这个神一般的人物到底是什么样的?有人称他为加密行业的比尔·盖茨,因为他不仅在推动加密货币行业的发展,而且正在改变根深蒂固的经济和社会文化。他在

  • 解密国美联手京东、拼多多背后:商战的本质是匹配资源

    国美以两场大交易搅动行业格局。5 月 28 日,京东宣布战略投资国美,以 1 亿美元认购国美零售发行的可转债。就在一个多月前,拼多多也认购了国美零售发行的 2 亿美元可转债。

  • 智能变革:英特尔HPC高性能计算与AI人工智能解决方案和实例

    在竞争日益激烈的环境中,数据中心作为传统信息化的基础,伴随着全面AI时代与5G、物联网的不断临近,企业希望获得出色的模拟和建模、人工智能(AI)和大数据分析功能,以便取得突破性的发现与创新,而高性能计算(HPC)基础设施能够为这些工作负载带来优势。 企业如果想在相同的 HPC 基础设施中运行 HPC、大数据分析和 AI 工作负载,优化的资源调度降低计算成本需要一个全面的融合HPC和AI集群的解决方案。 英特尔? 精选解决方案基于英

  • 现在买iPhone 11还是等iPhone 12?李楠:等iP12

    一年一度的618将于今晚0点正式开启。6月17日消息,一位知友在知乎提问:现在买iPhone 11还是等iPhone 12?目前iPhone 11在各大平台有大幅降价,京东平台iPhone 11 64GB版到手价4599元,拼多

  • 苹果将追踪定位iPhone抢夺者:定位iPhone技术介绍

    据 TMZ 报道称,5 月 25 日 George Floyd 遭遇明尼阿波利斯暴力执法而死亡。一周之后,美国多地发生了激烈的抗议示威活动,苹果 CEO 蒂姆·库克也曾在第一时间表达了对受害者的同情,以及对暴力伤害行为的反对。

  • iPhone SE 2 Plus、iPhone SE 3接踵而至?这可能吗?

    时隔两年,苹果今年终于发布了新款iPhone SE,连名字都懒得变,但是配备最新A13处理器、3299元的价格仍然让很多人大呼真香。那么接下来,iPhone SE又会怎么走?最新曝料称,苹果计划下一步推出

  • 京东iPhone疯狂降价:iPhone 11加899元全额换购iPhone 12

    6月1日开始,各大电商正式进入618大促。近日,京东官方宣布,自6月1日起,iPhone 11直降900元,到手价仅为4599元,同时还有iPhone 8 Plus领券立减600元、XS Max抢券立减500元等特别优惠,价格史

  • 易美教育前哥大招生官深度解密如何通过矩阵秘籍规划名校申请

    易美教育招生官顾问委员会成员、前哥伦比亚大学招生官阿尔伦女士受邀参加易美教育内部研讨会,为准备申请美国留学的学生们揭秘如何通过矩阵秘籍规划名校申请。在易美教育主办的易美教育-易讲坛线上圆桌会议上,阿尔伦女士针对美国名校的申请审查、录取规则、时间管理等话题为广大易美教育学子和家长答疑解惑。为了能更好地帮助学生,易美教育将内部研讨会内容进行总结,希望带给学生一些指引。易美教育招生官顾问委员会成员、前哥?

  • iPhone13机模曝光 手感类似iPhone5S

    近日日本网站Mac Otakara曝光一个5.5 英寸iPhone的3D打印模型,这款iPhone将于 2021 年上市,在苹果的命名中也就是iPhone13系列手机,该网站表示这款机模仅是正在开发的原型机,未来有可能会有变动。

  • 趁618买iPhone 11还是等iPhone 12?李楠给出了他的答案

    虽然如今的618的狂欢早已不仅局限于6月18日这一天,而是几乎贯穿6月一整个月,但不可否认,这一天仍将是其中所有人最期盼的狂欢高潮所在。而在热度最高的手机领域,苹果无疑是焦点中的焦点。正如此前预料的,各大平台以iPhone 11系列为代表的多款机型放出了极具竞争力的价格,牢牢吸引了无数用户的目光。

  • iPhone照片怎么添加标题

    苹果iPhone在iOS14系统中加入了给照片添加标题的新功能,这个功能具体是怎么使用呢,以下我们来看下照片添加标题的具体操作方法。

  • 比iPhone 11便宜不少!四款iPhone 12集体现身:命名曝光

    此前,多方权威信源显示,今秋苹果将推出四款iPhone 12机型,包括一款5.4英寸、两款6.1英寸以及一款6.7英寸机型。日前,荷兰T-mobile官网率先公布了iPhone 12的全系命名。相关页面信息显示,今

  • Zoom:因需要配合执法工作 不会对免费视频电话进行加密

    据外媒报道,如果你是一位免费的Zoom用户并等待这家公司推出端到端加密技术来更好地保护你的通话那么可这个希望可能要落空了。据悉,免费电话不会被加密,这可能意味着执法部门将能在平台被“滥用”的情况下获取你的信息。

  • 老外大赞iPhone 12系列:全面屏版iPhone 4外形史上最佳

    综合当前比较可靠的消息,今年秋季苹果的年度旗舰iPhone 12系列将依旧提供iPhone 12、iPhone 12Max和iPhone 12 Pro、iPhone 12 Pro Max两个版本共四款机型,而且Wedbush证券最新报道称,iPhone 12的发行将重回“正轨”,依旧选择9月份发布。现在有最新消息,近日有油管博主进一步放出了据称是该机机模的“上手视频”。据国外知名油管博主@iup_date 最新发布的消息显示,与此前曝光的消息基本一致,全新的iPhone 12系列?

  • iPhone13机模曝光 苹果iPhone13机模高清大图

    iPhone12 即将发布,而目前有关于下下代iPhone13 的消息也已经曝光。Macrumors报道,日本网站Mac Otakara近日曝光了一个5. 5 英寸iPhone的3D打印模型,据称该款iPhone将于 2021 年上市。

  • iPhone小组件怎么叠放

    苹果iPhone在iOS14系统中加入了桌面小组件国内,用户可以将应用程序的某个功能单独放置到桌面中,让用户快速启动查看,如何在iPhone上添加桌面小组件呢,以及将小组件进行叠放设置,以下我们来看下具体的操作方法。

  • iPhone画中画怎么开启

    苹果iPhone画中画功能怎么开启,想要使用画中画需要进行什么样的操作步骤,这里我们来一起了解下苹果iOS14画中画功能的开启方法。

  • 哪些iPhone支持iOS14

    iOS14系统预计在6月底的苹果WWDC开发者大会上正式公布,这个新的系统可以支持哪些iPhone手机更新呢,以下我们提前来看下iOS14系统支持的iPhone型号。

  • 苹果将追踪定位iPhone抢夺者

    据外媒报道,华盛顿、洛杉矶、旧金山、纽约和费城等多家苹果商店受到袭击或破坏,抢劫者偷走了所有可用产品。苹果公司警告,被抢劫的手机和电脑等产品均不可被重置,并将追踪定位不法者的位置发送到当地执法部门。

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天