C# 表单身份验证票据是否可以用PHP解密?
我是一名PHP开发人员,对.NET几乎一无所知。工作中的.NET人员要求我将解密身份验证票证的.NET代码翻译成PHP,这样PHP代码就可以为我的应用程序运行设置适当的会话变量。这可能吗?我盯着代码看,这让我很困惑。如果有人能告诉我这不是因为我不知道的原因而浪费时间,我会继续尝试。谢谢你的帮助C# 表单身份验证票据是否可以用PHP解密?,c#,.net,php,authentication,encryption,C#,.net,Php,Authentication,Encryption,我是一名PHP开发人员,对.NET几乎一无所知。工作中的.NET人员要求我将解密身份验证票证的.NET代码翻译成PHP,这样PHP代码就可以为我的应用程序运行设置适当的会话变量。这可能吗?我盯着代码看,这让我很困惑。如果有人能告诉我这不是因为我不知道的原因而浪费时间,我会继续尝试。谢谢你的帮助 附加信息:我甚至可以在第一时间用PHP抓到票吗 如果您知道解密算法,您肯定可以在PHP中实现它。正如Gumbo所说,您需要考虑所涉及的算法。asp.net身份验证票证使用: 创建序列化表单 身份验证票证。
附加信息:我甚至可以在第一时间用PHP抓到票吗 如果您知道解密算法,您肯定可以在PHP中实现它。正如Gumbo所说,您需要考虑所涉及的算法。asp.net身份验证票证使用:
因此,您可以指定要遵循的加密/解密算法和密钥。您可以在PHP中使用相同的解密逻辑。首先,打开machine.config并添加machinekey条目。根据machinekey生成器为aspnet 2.0随机生成的密钥设置解密密钥和验证密钥 确保使用默认值,即AES和SHA1。 现在您有了AES解密密钥,请将其存储在某个地方,因为您将需要它在php端。 在您的dotnet应用程序中,进入web.config并获取表单auth cookie名称,通常类似于.ASPXAUTH 现在转到PHP端。下载并设置一个AES加密库,如下图所示 然后在PHP中,您可以执行以下操作(这使用phpsec库): 现在得到的结果将首先是pm+SHA1哈希+身份验证票证的一个字节表示。必须将序列化的字节转换为字符串以使其可读。在最后一步,其他人能发光吗
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);