2016-11-16 33 views
0

编着MD5版本的字段添加更多的信息查询wiith ID

我需要使用MySQL的MD5函数中调用它的ID字段(uid)选择一个项目。我的用户名为recover_db,它有一个单独的数据库,其中包含用户标识的md5哈希值和一个时间戳。

目前该用户访问一个链接是这样的:

recover-MD%HASHEDUSERID.html 

然后系统采用的是MD%HASHEDUSERID从URL并检查它是否存在于recover_db和如果这样做,让他们恢复的帐户。还有一些其他的东西用于安全性,但是我不会将用户标识存储在recover_db中,只是它的MD5值。我用下面这样做:

md5(90*13/12*56+$id) 

现在,我需要检查用户数据库,并使用我已保存的MD5值获得真正的帐户ID。我正在使用以下查询来执行此操作:

$query = "SELECT uid FROM users where md5(90*13/12*56+uid)='".$md5accID."'"; 

不幸的是,这是返回没有结果。有没有办法从recover_db使用它的md5版本从users数据库获取真实用户ID?如果可以,我想避免将用户标识存储在recover_db中。

回答

1

将原始用户标识与一起保存在恢复数据库中的散列(hasheduid)中。然后做

$query = "SELECT origuid FROM users where hasheduid='".$md5accID."'"; 

检索原始用户ID。

+0

自您发布以来,我更新了一些问题。当你回答大声笑时,我正在编辑它以更好地说出它。虽然这个建议可行,但我希望避免在可能的情况下在recover_db上存储** REAL **用户标识。如果这是不可能的,那么我会以这种方式存储它,并改变我的md5的东西。 – Kaboom

+0

尽管我不想在数据库中存储真正的用户标识,但我决定以这种方式更容易。 – Kaboom