如何使用 PHP 获取表单身份验证票证的内容

2024-04-17

我需要在 PHP 中撤消以下 ASP.Net 进程,以便可以获取票证中的用户名和到期日期。我已经解密了 3DES 加密(下面的步骤 3),但我不确定下一步需要做什么。解密得到的字符串是字节数组吗?我应该能够将其转换为ascii 吗? (因为事实并非如此)。

ASP.Net 是如何创建票证的:

  1. 序列化用户名、过期时间和其他数据(我不关心)。创建一个字节数组。
  2. 使用 SHA1 对票据进行签名(sig 是最后 20 个字节)
  3. 使用 3DES 加密票证(我已将其解密)。

我返回的东西看起来像这样:

6E 85 A4 39 71 31 46 BB A3 F6 BE 1A 07 EE A4 CE 5F 03 C8 D1 4C 97 5D 6A 52 D1 C4 82 75 5E 53 06 7B 1D D2 4D BF 22 40 F7 F4 B8 8D B0 C3 EC E5 BE F7 5 2 C2 DF 00 7A D1 CB BC 76 4B 10 33 2D 1A B4 15 A7 BB D6 9D BF 41 69 D2 C4 43 4A 26 95 01 F2 06 AA 46 2C 96 CC AD DC 08 59 C0 64 B6 EE 2C 5F CA ED 8B 92 1C 80 FD FF DC 61 67 28 59 CB E6 71 C6 C3 72 0E D0 32 69 22 57 4E 40 2B DA 67 BA 7F F1 C5 78 BC DF 80 8C D8 F2 8B 19 E2 A4 4F 7C 8C D9 97 37 BD B5 5B 0A 66 9B DD E7 DC 7B 78 F4 F8

它没有映射到 ascii,接下来我该怎么办?我有 SHA1 验证密钥。谢谢你的帮助!


我认为这是不可能的...

几个先决问题:

  • 您确定已正确解密该字符串吗?MachineKey值和解密算法?我知道 ASP.NET 1.0 使用 3DES,但较新的版本通常默认使用 AES。
  • 您首先为什么要访问这些数据?这FormsAuthenticationTicket并不是要“破坏”,如果您要从不同的语言访问这些值,您可以考虑推出自己的方案。

一些值得注意的观察结果:

Buried in FormsAuthentication.Decrypt()是一个电话UnsafeNativeMethods.CookieAuthParseTicket(...)。这是签名:

[DllImport("webengine.dll", CharSet=CharSet.Unicode)]
internal static extern int CookieAuthParseTicket(byte[] pData, int iDataLen, StringBuilder szName, int iNameLen, StringBuilder szData, int iUserDataLen, StringBuilder szPath, int iPathLen, byte[] pBytes, long[] pDates);

这会解析看起来像是从返回的字节数组MachineKeySection.HexStringToByteArray()(显然是一个使用 UTF-8 解码字符串的函数)到FormsAuthenticationTicket.

我只能假设,无论您使用哪种解码方法(ASCII、UTF-16 等),除非您知道此本机方法中隐藏的 Microsoft 实现,否则您都无法取回数据。

MSDN http://msdn.microsoft.com/en-us/library/ms998288.aspx#paght000007_formsauthenticationtickets也可以提供一些帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PHP 获取表单身份验证票证的内容 的相关文章

  • 未找到列:1054 未知列 laravel

    所以我尝试用 laravel 制作一个表单 但除了新版本之外 他们删除了表单 但我可以让它运行 所以这里是 Route post register function user new User user gt u n Input get u
  • 在应用程序中设置reportviwer的参数

    我们如何设置 Net的reportviewer的参数呢 List
  • 以编程方式调用 EntityDeploy 构建任务

    我正在使用 Roslyn 来编译 发出和运行 C 源代码 但是 在面对使用 EntityFramework 的项目时 我遇到了限制 似乎简单地发出编译是不够的 因为有一个EntityDeploy在 DLL 发出后对其进行操作的构建任务 我相
  • .NET 的 SMS 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道 NET 的免费 SMS 库或网络服务可以让我向人们的手机发送短信吗 您实际上在寻找什么 图书馆
  • SQL CLR 内的 WCF 客户端

    我知道它不受支持 而且我知道这甚至不是一个好主意 但是 我希望在 SQL 表值函数中拥有一个 WCF 客户端 我 看似 注册了正确的程序集 但在运行我的客户端时 我收到 WCF 错误 Msg 6522 Level 16 State 1 Li
  • 我可以下载并安装 gacutil.exe 而无需安装 VS 或 SDK 吗?

    我希望管理员为我注册一些 DLL 但他可能不希望安装整个 SDK 他可以直接安装吗gacutil exe 如果有的话 他可以从哪里得到呢 我只需发送电子邮件至gacutil exe文件给他 他必须把它放在他的机器上哪里才能使用 我通过复制让
  • .Net 中的计时器和循环准确吗?

    在开发一个程序时 计算555定时器IC产生的脉冲的频率和脉冲宽度 通过PC并行端口传到PC 我注意到每次运行代码时它都会显示不同的值 因此我开始测试循环和计时器的准确性 我运行了以下代码 发现它们不准确 我可能是错的 如果我错了 请纠正我
  • Specflow 在具有场景上下文的表中使用参数

    我正在 C 中使用 Specflow 通过 Selenium 构建自动客户端浏览器测试 这些测试的目的是模拟客户在特定页面进入我们网站的业务场景 然后他被引导到正确的页面 我想在场景上下文中使用参数 例如 When I visit url
  • C# Winforms - ProgressBar 无法正确显示和重置

    我有一个 Windows 桌面应用程序 正在使用 Visual Basic 中的 Windows 窗体编写 在这个应用程序中 我想显示一个简单的进度条 但我遇到了一个奇怪的问题 下面是更新进度条的简单 for 循环示例 pBar Visib
  • 如何在Windows窗体代码后面编写方法的单元测试

    我有想要测试的方法 但收到此错误 在创建窗口句柄之前无法在控件上调用 Invoke 或 BeginInvoke 现在我还有一个列表框 正在我正在测试的函数中填充 因此 当我将方法分离到另一个类时 这是一个问题 我理解这一点 因为表单需要首先
  • 如何包含来自其他域的一个 php 文件

    我在同一台服务器上有两个域 www domain com www domain com 我有一个index1 php在拳头服务器中 现在我需要包含该文件index2 php驻留在域2中 如何使用 php 代码 包括 要求 不可能在另一台服务
  • 在 PHP 中使用消息队列与普通 Cron 作业之间的区别

    我们有一个基于 PHP 构建的大型 Web 应用程序 该应用程序允许安排推文和墙贴 并且有从服务器发出的预定电子邮件 我所说的 计划 是指这些 PHP 脚本计划在特定时间运行cron 大约有 7 个 PHP 文件可以完成上述工作 我一直听说
  • PHP foreach 和 glob() 函数

    PHP 版本 5 2 我的功能不起作用 服务器中的图像 位于文件夹 public html gallery images 有什么帮助吗 我做错了什么 我得到的错误是 警告 第 2 行 home a9773555 public html ga
  • FOSUser Bundle 必须配置路径“fos_user”的子节点“db_driver”

    我试图在安装 FOSUser Bundle 2 0 后更新学说架构 但我不断收到此错误 In ArrayNode php line 238 The child node db driver at path fos user must be
  • PHP比较日期[重复]

    这个问题在这里已经有答案了 可能的重复 PHP日期比较 https stackoverflow com questions 4143741 php date compare 我从 mySQL 数据库中获取了一个日期 如下所示 2011 06
  • 使用curl作为fgetcsv的fopen文件资源的替代品

    是否可以制作curl 访问url并将结果作为文件资源 就像 fopen 是如何做到的 我的目标 解析 CSV 文件 将其传递给 fgetcsv 我的障碍 fopen被禁用 我的代码块 在 fopen 中 url http download
  • 为什么 VS 2010 中构建的应用程序与 VS 2010 中构建的应用程序的行为存在差异? VS 2012?

    我正在检查在我们的构建机器上安装 NET 4 5 是否会更改 VS 2010 生成的输出 IL 映像 因为我知道 NET 4 5 中 foreach 的行为已发生变化 以避免由于以下原因而出现问题访问修改后的关闭 http blogs ms
  • PHP 5.5中的password_hash函数

    我有以下函数 可以对密码进行哈希处理并将其存储在数据库中 我正在尝试使用 php 5 5 中的password hash 函数 但它给了我奇怪的结果 function hashpass password include includes c
  • 如何从控制器 Symfony2 内部访问不同的控制器

    我需要从另一个控制器内的不同控制器访问方法 我该怎么做 我可以用吗this gt get method 我可以将控制器包含在当前控制器中并创建它的对象并通过该对象访问该方法吗 这样做 可以 吗 我想调用另一个控制器的表单方法 newActi
  • 使用BindingSource很慢?

    我有一个 C Windows 窗体项目 其中的窗体包含 2 个列表框和一个按钮 在 FormLoad 上 左侧列表框填充了一个列表 约 1800 个项目 其中包含有关证券的信息 ID 和名称 当用户单击按钮时 所有证券都会从左侧列表框移至右

随机推荐

  • 如何使用多色热图解决 MemoryError

    我试图通过从文件中读取数据来绘制具有多种颜色的热图 我可以很好地生成 2D 和法线热图 但无法绘制如附图所示的图像 当使用随机数时 我可以绘制此图 但在从文件中读取数据时 它显示错误 上面的热图是用随机数据生成的 Input col 1 a
  • 如何更改存储在字符串中的日期格式?目标c [重复]

    这个问题在这里已经有答案了 可能的重复 如何转换 NSString 中的日期时间格式 https stackoverflow com questions 2076417 how to convert datetime format in n
  • @use 即将推出,但此版本的 Dart Sass 不支持它

    我在跑步ng serve包含 Sass 的 Angular cli 项目 我一直在使用 import and include没有问题 当我添加时 use 终端抛出 use 即将推出 但此版本的 Dart 不支持它 萨斯 我的 package
  • 带列表框的 WPF ScrollViewer

    需要你的帮助 我有一个列表框 带有虚拟化 显示一个 ScrollViewer 我的列表框项目是可展开的 展开时它们的高度可能会超出可见的滚动区域 我遇到的问题是 当列表框项目超出可见滚动区域时 滚动会跳转到下一个列表框项目 而不是简单地滚动
  • 在 UITableView 的 header 中添加一个 UIButton

    我需要在动态填充的 UIViewTable 的正上方放置一个按钮 不填充第一个单元格 第 0 行 而是利用标题区域感觉是正确的 因此我使用 UITableViewDelegate 方法以编程方式创建一个包含 UIButton 的 UIVie
  • 如何在 Objective-C 中创建 NSNotification 对象?

    我想创建一个 NSNotification 对象 如下所示 NSNotification obj NSNotification alloc init 但是当我像这样创建时 我收到一个异常 NSConcreteNotification ini
  • 高性能QImage输出显示

    我正在尝试将视频输出 帧序列 到任何 qt 可见小部件 一开始我认为 QLabel 足以满足这一点 但我错了 对于处理大图像 例如 1080p 的处理器来说 转换为像素图过于过载 还有其他解决方案吗 不是QLabel 一帧的代码示例 QIm
  • java.lang.UnsupportedOperationException:无法将索引 5 处的值转换为颜色:type=0x5

    我的应用程序更新后崩溃了Android Studio 3 RC1 Gradle4 安卓Gradle插件 3 RC2 This is the error I am having java lang RuntimeException Unabl
  • g++:在涉及多个翻译单元的情况下 RVO 如何工作

    首先请看下面的代码 它由2个翻译单元组成 foo h class Foo public Foo Foo const Foo rhs void print const private std string str Foo getFoo foo
  • Spyder 绘制 Tkinter 后端无响应的图

    在spyder 4 以及使用3降级后 下绘图不起作用 我只是在做 data 1 2 3 plt plot data The output is a non responding frame After forcing to close it
  • 如何等到File.Exists?

    我有一个应用程序 正在侦听所选文件夹中的 log 文件 我用了FileSystemWatcher 但有一个问题 负责制作该文件的另一个应用程序采取以下步骤 制作一个 gz 文件 解压到txt文件 一些随机文件名 将 txt 名称更改为带有
  • 如何让客户端下载动态生成的非常大的文件

    我有一个导出功能 可以读取整个数据库并创建一个包含所有记录的 xls 文件 然后文件被发送到客户端 当然 导出完整数据库的时间需要大量时间 并且请求很快就会以超时错误结束 处理这种情况的最佳解决方案是什么 例如 我听说过使用 Redis 创
  • JavaScript 中是否可以从子类导入父模块?

    我有两个带有自己模块的文件 Sub js and 父 js 父 js import Sub from Sub js export default class Parent static createSomething new Sub Sub
  • 保存和读取 Integer Firestore Android

    我正在尝试为我的 Android 游戏创建一个简单的统计活动 我正在使用新的 Firestore 数据库 我已经能够将文档保存到我的 Firestore 数据库中 其中包含总分数 最近分数 平均分数 总游戏数和高分 但是当我尝试从数据库读回
  • 用于下载文件的 S3 模块在 ansible 中不起作用

    这是为从 S3 存储桶 artefact test 下载文件而编写的 ansible 代码 name Download customization artifacts from S3 s3 bucket artefact test obje
  • R 中 foreach() 内的 try() 问题

    我正在尝试使用try 函数来处理并行 for 循环中发生的错误 results lt foreach i 1 2 errorhandling remove dopar res lt try myfun i TRUE with myfun l
  • clang:自定义属性在 AST 中不可见

    我按照官方手册中的描述在 clang 中实现了一个自定义属性 http clang llvm org docs InternalsManual html how to add an attribute http clang llvm org
  • VBA代码导入

    我有一个用 excel 做的 VBA 项目 我将有许多工作簿将使用相同的代码 并且如果我进行更改 我不想将代码复制到所有工作簿 是否有办法将代码放在一个中心位置 然后让所有工作簿访问该代码 是的 你有两个选择 1 将代码复制并粘贴到个人工作
  • 按钮触发单击事件两次

    似乎有时 但并非总是 我的按钮单击事件被触发两次 事实上 这种情况似乎有时会发生 但并非总是如此 这让我很困惑 这是我的按钮
  • 如何使用 PHP 获取表单身份验证票证的内容

    我需要在 PHP 中撤消以下 ASP Net 进程 以便可以获取票证中的用户名和到期日期 我已经解密了 3DES 加密 下面的步骤 3 但我不确定下一步需要做什么 解密得到的字符串是字节数组吗 我应该能够将其转换为ascii 吗 因为事实并