远程数据库php丢失,php – 更改哈希而不会丢失数据库用户

我有这个网站,有一个简单的CMS,当用户注册时,他们的密码在MD5中加密.

但由于我不喜欢这种加密,而且我已经在重新构建我的CMS了,所以我也改变了哈希.

现在,他们是一种在不丢失我的数据库用户的情况下在另一种加密方法中更改MD5的方法吗?

解决方法:

您可以在数据库中添加3个新列,以保存密码.

newPassword,newSalt,isRequired

在这里,您可以保存由新密码创建的新盐(如果使用散列,如phps password_hash),新的散列密码,以及这是否是自散列更新以来的首次登录尝试.

方法

您需要修改登录脚本以检查isRequired是否为YES.如果是这样拉旧的哈希密码和旧盐,否则使用新密码和新盐.

对于所有当前用户,将isRequired设置为YES.

在用户登录时,如果isRequired值为YES,则将用户重定向到密码重置页面,否则继续正常.

此密码重置页面本质上是新的注册页面,但针对当前用户进行了修改,因此他们不必根据您处理数据的方式创建新的用户名等.

当用户重置密码时,将使用新方法对其进行哈希处理并按照“新”部分中的常规方式存储在数据库中,并将isRequired值设置为NO.

对于新用户,请确保注册页面将其密码放入newPassword列并使isRequired为NO.

下线

最后,当所有isRequired值都为NO时,您可以更新数据库并编码以删除所有未使用的旧列,删除与MD5哈希等相关的所有代码.

如果某些旧用户仍未更改其密码,则可以删除其用户并重新注册.也许会向所有用户发送一封电子邮件,说明如果您在x天之前没有更新他们的密码,他们的数据将被删除,他们将不得不重新注册.

标签:php,sql-server,hash

来源: https://codeday.me/bug/20190527/1166984.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值