我正在为我的一个 Android 应用程序编写一个登录系统。我正在为登录系统使用 mysql 和 php,使用来自 android 应用程序的发布请求进行登录。请注意,该帐户也是从设备创建的(注册),现在是问题所在。
crypt 函数似乎添加了很多额外的东西,它包含正确的散列密码,但它与数据库中的密码不同,如果我向您展示它是最好的:
我数据库中的密码:$6$WX6WbSQfm5iN$vx/B9TKLkcnVDxIPvKc9TUzpWLjD77mlCk
确保使用正确的密码并像这样使用此功能
crypt($userPasswordFromPost, $encryptedPasswordFromDB)
返回这样的值:$6$WX6WbSQfm5iN$vx/B9TKLkcnVDxIPvKc9TUzpWLjD77mlCk kOj43jHRW25ecYfbhgGtm27tVG9oSGHqaKrOugYrBpjwzZ//gel0
请注意,我必须在上面的字符串中加一个空格,但没有空格是该函数返回的完整字符串,因为您可以看到正确的散列密码后面有很多废话.
System info
running on: Ubuntu Linux 12.10 (64 bit)
php version: PHP 5.4.6-1ubuntu1.1 (cli)
更多信息可应要求提供。非常接受任何帮助!
最佳答案
好吧,我现在觉得自己很蠢。我的 mysql 数据库密码字段被限制为 varchar(50),所以它切断了密码并且它们永远不可能相等。我将数据库字段增加到 200 个,但我不想再冒险了。感谢大家的宝贵时间,感谢 Charles 发现了问题
关于Php crypt() 函数返回 "weird results",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115896/