繁体   English   中英

更改密码PHP

[英]Changing Passwords PHP

考虑到md5,如何允许更改密码。 创建帐户时,将在md5中输入密码。 因此,现在当我显示密码字段时,它们当然位于md5中(不用担心出于测试目的,我会在该字段中显示密码,而不是显示哈希或破折号)。

那么我该如何更改密码呢? 更改它们后,它们也需要位于md5中。

不要在密码字段中显示任何内容。 有3个字段。 一个用于原始密码(用于安全性),第二个用于新密码(一个用于验证)。

提交后,检查旧密码,如果正确,则md5新密码并保存。

在数据库中,您用新的MD5哈希覆盖了旧的MD5哈希。 还是您在问用户界面问题?

MD5哈希是无法解密的单向哈希,因此不需要显示它。 更改密码会使用新的MD5哈希更新数据库。

那么我该如何更改密码呢?

我认为您应该阅读“ 您存储的密码可能不正确” (作者stackoverflow.com的文章):

我们了解到,在密码哈希方案中,速度是大敌。 我们了解到MD5是为提高速度而设计的。 因此,我们了解到MD5是敌人。

如果必须存储密码(也请阅读以下内容以获取更多提示),请使用phpass安全地存储密码。 建议您阅读网站上的文章,其中介绍了如何管理PHP应用程序的用户和密码 它将教您如何使用电子邮件验证令牌安全地进行操作。

只是出于乐趣,我还创建了一个库(请在下面阅读),该库使用出色的phpass为您完成此操作。 它托管在github上 ,您可以根据需要进行查看。 特别是,您应该与AuthenticationTest一起查看Authentication Class

OpenID

此外,我想指出您应该改用OpenID,Facebook Connect,Google Friend Connect之类的东西。 您不应该存储密码,因为这是危险的业务,如《关于Web密码的肮脏真相》所述

杰夫·阿特伍德:

我不是要批评高克。 相反,我要感谢他们宽泛,大胆地说明了网站密码的肮脏事实:没有密码,我们所有人都会过得更好。 如果您希望以后的网站摆脱Gawker风格的密码泄露威胁,请停止使用唯一的用户名和密码来信任每个随机的互联网站点! 要求他们允许您使用Internet驾驶执照(即您现有的Twitter,Facebook,Google或OpenID凭据)登录他们的网站。

我在github上也有一个不错的OpenID库 ,该将LightOpenID与openid-selector结合使用。 您可以在我的共享主机提供商处看到一个正在运行的演示: http : //westerveld.name/php-openid/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM