【发布时间】:2011-02-05 11:28:25
【问题描述】:
我遇到了 SQL Server 问题。我的任务是用 PHP 实现一个简单的基于 SQL Server 的用户系统。这些数据库也被 MMORPG 使用,所以我不能更改数据库结构或散列算法。我的问题的真正原因是,密码是由以下算法散列的
HashBytes('MD5', REVERSE(UPPER(@ID)) + @PW)
I created a test user called test123 and pw hallo123 what conforms the password hash "0x7CEE495091E11FF9560D3D01651333220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
到目前为止,一切都应该清楚了。好吧,但是当我尝试通过查询获取数据时,我没有得到任何结果。我运行了这个查询:
mssql_query("SELECT * FROM [DB_Member].[dbo].[Member] WHERE ID = 'test123' AND PW = HashBytes('MD5', REVERSE(UPPER('test123')) + 'hallo123')");
不返回任何结果。但是如果我直接运行这个查询
mssql_query("SELECT * FROM [DB_Member].[dbo].[Member] WHERE ID = 'test123' AND PW = 0x7CEE495091E11FF9560D3D01651333220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);
我得到数据没有任何问题
我现在正在努力解决这个问题大约八个小时,但我无法弄清楚问题所在。
【问题讨论】:
标签: php sql-server passwords password-hash