2013-01-02 42 views
0

我正在为我的一个android应用程序编写一个登录系统。我正在使用mysql登录系统的php & php,使用来自android应用程序的登录请求。请注意,该帐户也是由设备制作的(注册),现在是问题所在。Php 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) 

更多信息可根据要求提供。任何帮助都很受欢迎!

+0

根据[文档](http://php.net/manual/en/function.crypt.php),第二个参数为'crypt'是一种可选的盐。你为什么要将密码存储在数据库中? –

+1

来自数据库的密码包含salt。在文档中看起来更低,第一个例子 – HcgRandon

+0

通过调用crypt('mypassword')函数创建数据库中的密码 – HcgRandon

回答

1

好吧我在这个时候感觉非常愚蠢。我的MySQL数据库密码字段限于varchar(50),所以它切断了密码,并且他们不可能平等。我把数据库字段增加到了200以上,但我宁愿不再接受这个机会。谢谢大家的时间,谢谢查尔斯发现问题