【发布时间】:2011-05-18 10:49:48
【问题描述】:
我们正在将一个 ASP 站点(使用 DotNetNuke)转换为一个新的 PHP 站点。我们现在唯一拥有的是现有数据库的完整导出。其中一张表名为“aspnet_Membership”,包含以下字段:
- 密码(看起来像 base64)
- PasswordFormat(始终为 2)
- PasswordSalt(看起来像 base64)
- 密码问题(始终为空)
- PasswordAnswer(始终为空)
我们希望对这些密码进行解码并对它们进行哈希处理以适应我们自己的框架。根据我从.NET 文档中了解到的这些密码可以被解密。是否有可用的算法可以做到这一点,还是比这更复杂?如果我们在当前服务器上创建一个 ASP 脚本可以吗?
提前致谢
【问题讨论】:
-
好的,感谢您的回复 ojb,尤其是 Simon,我能够检索 Web.config 的内容,因此我们现在有了解密密钥和验证密钥。加密方法设置为“3DES”。这会敲响警钟吗?我想现在应该可以用 PHP mcrypt 解密它,但我似乎找不到正确的参数。
-
嗯.... 不知道您是否可以使用 PHP 做到这一点。使用 .NET,我认为您可以使用 GetPassword 方法重用成员资格提供程序:new SqlMembershipProvider().GetPassword(username, passwordAnswer);
-
@Simon Mourier 在他的所有观点上都是正确的。您需要原始机器密钥,SqlMembershipProvider.GetPassword 方法将起作用,还有一个不需要答案参数的 MembershipUser.GetPassword 方法。最后,我检查了一个我知道使用加密的数据库,并且 PasswordFormat 字段为 2。
标签: php asp.net asp.net-membership dotnetnuke mcrypt