使用PHP在ASP.NET成员资格认证用户资格认证、成员、用户、PHP

2023-09-07 16:22:21 作者:旧颜。

我想验证使用PHP用户对现有的ASP.NET成员资格数据库时遇到一些问题。我在网上搜索,而且我发现似乎并不为我工作已有答案。即:

 公共静态函数哈希($密码,$盐)
{
  $日codedSalt = base64_de code($盐);
  $ UTF = mb_convert_encoding($的密码,UTF-16LE,UTF-8);
  返回base64_en code(SHA1($日codedSalt $ UTF,真)。);
}
 

我认为这个问题的一部分是,密码哈希值实际上并没有被计算与SHA-1,因为在数据库中的值是44个字符长,基数64 EN codeD字符串(也就是输入是大概256位)。我试着使用SHA-256代替SHA-1,但无济于事。我无法找到这将是进一步腌制的哈希值在web.config一机键,ASP.NET站点生成相同的哈希值,当我在本地运行,或在生产服务器上,所以我不知道为什么他们AREN T匹配。

Web.config中成员提供:

 <新增的connectionStringName =MySqlMembershipConnectionenablePasswordRetrieval =假enablePasswordReset设置=真正的requiresQuestionAndAnswer =假requiresUniqueEmail =真了passwordFormat =散列maxInvalidPasswordAttempts =5 minRequiredPasswordLength =6minRequiredNonalphanumericCharacters =0passwordAttemptWindow =10的applicationName =/autogenerateschema =真名称=MySqlMembershipProvider类型=MySql.Web.Security.MySQLMembershipProvider,mysql.web/>
 

例密码的应该的工作:

  $盐='Mu1tp8XzfKl8dSTVAZm44A =='; //直接从数据库
$密码='测试';
$ expectedHash ='TQN7m8OWIyBOKVwzegWSUBVq7o7 + KWFBc46J + B77mLw ='//直接从数据库

//当使用SHA-256,而不是SHA-1以上的Hash函数
$ generatedHash ='rpmTmtBfWoJz71ooQGQUIIyQJKd99qhYxMUI1yda0qE ='
 
ASP.NET MVC 四

思考?任何想法,为什么我的哈希值不匹配,什么是存储在数据库中(以及为什么/如何通过ASP.NET网站登录时工作)?我试着换出散列函数,扭转了密码/盐串联,并大声喊叫,而打我的电脑,这些都不似乎帮助。

解决方案

我看了看在验证问题页面,你链接到与一个特定的答案引起了我的注意:的