我是一名PHP开发人员,几乎不了解.NET..NET工作人员已经要求我将用于解密身份验证票证的.NET代码转换为PHP,以便PHP代码可以为我的应用程序设置适当的会话变量来运行.这甚至可能吗?我正盯着代码,这让我感到困惑.我会继续尝试,如果有人能告诉我这不是浪费时间因为某种原因我甚至都不知道.谢谢你的帮助!
附加信息:我是否可以首先使用PHP获取票证?
首先,打开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票证的字节表示.您必须将序列化字节转换为字符串以使其可读.其他人可以在最后一步发光吗?