1

我们正在将一个 ASP 站点(使用 DotNetNuke)转换为一个新的 PHP 站点。我们现在唯一拥有的是现有数据库的完整导出。其中一个表称为“aspnet_Membership”,包含以下字段:

  • 密码(看起来像 base64)
  • PasswordFormat(始终为 2)
  • PasswordSalt(看起来像 base64)
  • 密码问题(始终为空)
  • PasswordAnswer(始终为空)

我们想解码这些密码并对它们进行哈希处理以适应我们自己的框架。根据我从.NET 文档中了解到的这些密码可以被解密。是否有可用的算法可以做到这一点,还是比这更复杂?如果我们在当前服务器上创建一个 ASP 脚本可以吗?

提前致谢

4

2 回答 2

3

我认为 2 表示“加密”,而不是“散列”(参见此处的定义)

加密意味着您实际上可以解密它,但您需要将机器密钥存储在创建这些密码的物理机器的配置文件中(查看我发送的链接)。如果您只有数据库的副本,那么您将无法做到这一点。

于 2010-12-01T13:50:54.390 回答
2

不幸的是,您在 PasswordFormat 中的值 2 告诉我们这些密码是经过哈希处理的,可能使用 SHA1(您可以在 web.config 中检查这一点)。抱歉,无法可靠地取回原始密码。

*编辑:当然,除非您知道特定散列函数中的特定加密弱点。

于 2010-12-01T12:31:50.700 回答