当前位置:  开发笔记 > 编程语言 > 正文

PHP可以使用表单身份验证票证解密吗?

如何解决《PHP可以使用表单身份验证票证解密吗?》经验,为你挑选了1个好方法。

我是一名PHP开发人员,几乎不了解.NET..NET工作人员已经要求我将用于解密身份验证票证的.NET代码转换为PHP,以便PHP代码可以为我的应用程序设置适当的会话变量来运行.这甚至可能吗?我正盯着代码,这让我感到困惑.我会继续尝试,如果有人能告诉我这不是浪费时间因为某种原因我甚至都不知道.谢谢你的帮助!

附加信息:我是否可以首先使用PHP获取票证?



1> 小智..:

首先,打开machine.config并添加machinekey条目.根据aspnet 2.0的machinekey生成器中随机生成的密钥和验证密钥设置解密密钥和验证密钥.

一定要使用默认值,即.AES和SHA1.现在您已经拥有AES解密密钥,将其存储在某处,因为您将需要在php端使用它.在你的dot net应用程序中,进入web.config并获取表单auth cookie名称,通常类似于.ASPXAUTH

现在转到PHP端.下载并设置AES加密库,如下所示,http://phpseclib.sourceforge.net/documentation/

然后在PHP中你可以做这样的事情(这使用phpsec lib):

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Crypt/AES.php');

$authCookie = $_COOKIE['_ASPXAUTH'];

echo $authCookie;

$aes = new Crypt_AES();

$aes->setKey('BCDCBE123654F3E365C24E0498346EB95226A307857B9BDE8EBA6198ACF7F03C');

echo $aes->decrypt($authCookie);

现在最终出现的是第一个是pm + SHA1哈希+一个auth票证的字节表示.您必须将序列化字节转换为字符串以使其可读.其他人可以在最后一步发光吗?

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有