我正在cakePHP中写一个“忘记密码”功能。用户密码被散列到数据库中,因此我必须让用户选择一个新密码。
视图中的表单要求输入2个值“email”和“new_password”。该函数检查电子邮件是否存在,然后发送带有确认链接的电子邮件,如下所示:
http://mysite.com/users/confirm_forgot/#USERID#/#HASHED_USER_ID/#PASSWORD#/#HASHED_PASSWORD#
用户点击该链接后,该函数会检查参数(#USERID#和#PASSWORD)是否与其散列版本匹配。
问题是#PASSWORD#没有加密(纯文本),我不喜欢它,所以我不想对产生类似于输出的参数应用双向加密一个UUID 。
我知道 Security :: cipher 函数,但是它创建了非“易读”的字符,例如原始“1234”的“ I3:”。
四舍五入:
是否有一个 cakePHP 内置方法,允许我将文本加密为看起来的内容,如UUID(例如 FBBD4D1E-B46C-0418 -15793119526DB242 FBBD4D1F-F56E-0D13-39730810BCEB0CD3 )但我以后可以解密吗?
提前致谢!
答案 0 :(得分:0)
为什么需要包含纯文本密码?您已经包含了哈希密码,因此只需将其与存储在数据库中的哈希密码进行比较。
答案 1 :(得分:0)
答案是将base_64编码添加到它生成的“难以辨认”的输出中。 D'哦。