当前位置: 首页 > 面试题库 >

PHP:当用户单击使用md5加密的忘记密码时,如何将原始密码发送给用户?

盖绪
2023-03-14
问题内容

我正在使用md5加密项目中的密码。

当用户单击“忘记密码”并提交他的电子邮件时,我必须将他的密码发送给他。

但是密码是使用md5加密的。不应生成新密码。因为在此项目中,管理员可以查看用户的所有详细信息。因此,我必须将原始密码显示给Admin。因此,初始密码非常重要。因此,我该如何解密密码或以其他方式发送给他原始密码?

提前致谢…


问题答案:

哈希不能被设计为无法解密,这就是为什么它们通常被称为“单向哈希”而不是仅哈希的原因。

而是…

  1. 生成一个新的密码哈希,将新的密码哈希存储在旧密码中,然后将新生成的密码通过电子邮件发送给用户。

  2. 生成一个新密码,对其进行哈希处理,并将其存储在临时密码字段中,然后当用户使用该密码登录时,提示他们输入永久的新密码。

  3. 生成一个随机数,将其存储在该随机数的字段中,然后通过电子邮件向用户发送带有该随机数的链接,该链接将使他们能够访问页面以输入新密码。

第三种选择可能是最好的选择,因为它不会在普通视图中为阅读用户电子邮件的人留下实际的密码(临时密码或非临时密码),并且由于使用的是随机数,因此一旦使用就无法使用被恶意用户再次使用。

哈希用于密码的原因是专门用于防止将其存储为恶意用户仅通过查看数据库即可确定密码的形式。

“所以我必须向管理员显示原始密码。”

如果您对密码进行哈希处理,则 不可能 。通常,允许管理员查看用户的密码实际上是一个 坏主意
,因为很大比例的用户倾向于将相同的密码用于多项操作,而一件事(例如,公司网络)的管理员可能不会其他许多事情的管理员(例如,用户的在线银行系统)。

MD5不是加密算法,而是哈希算法。 两者是不一样的。加密被设计为可逆的(因此使用了补充术语“解密”),而哈希设计为仅单向的。



 类似资料:
  • 在我的服务器上,我有可以存储和加密文件的用户。 用户的密码是SHA512散列的,所以我不能反向/解密它们。用户的文件是用一个随机的file_key加密的,它是在我的数据库中加密的,要知道文件的file_key的唯一方法是使用用户的密码来解密file_key。之所以这样做,是因为我不想每次用户更改密码时都必须重新加密所有文件,而是使用用户的新密码重新加密file_key,并将其重新存储在数据库中。

  • 问题内容: 我正在使用ExtJS框架。我在 JavaScript中 有MD5函数来加密某些JSON。我的后端使用Java,所以我想知道如何使用 Java 解密MD5 Javascript加密? 这是我正在使用的MD5函数的JS等效项: 问题答案: MD5是 哈希 (即单向转换),因此您无法对其进行解密。您可以将已知哈希与从明文计算出的哈希进行比较,以验证输入的有效性。Java已经为此内置了库。我在

  • 忘记密码时 若要使用此机能,可能需先更新系统软件。 忘记密码时,请遵循以下方法重新设定密码。 1. 进入主选单的(PlayStation®Netrowk)后,选择(账户管理)或(PlayStation®Store)。 2. 显示需输入登入ID(电子邮件地址)与密码的画面时,选择[忘记密码时]。 3. 输入登入ID(电子邮件地址)及出生日期。 4. 选择变更密码的方法。 回答[密码提示问题]来变更密

  • 代码如下: 这是我面临的错误:

  • 问题内容: 当开发人员想要保护自己的Web应用程序安全时,Spring Security非常有用。 但是,如何创建帐户呢?和“忘记密码”?大多数登录页面都具有这些链接以及用户名和密码字段。Spring的默认登录页面没有这些链接…在很好的情况下,它可以支持“记住我” … Spring是否支持创建帐户,忘记密码和更改密码这些流程?如果答案是肯定的,您能给我指出一些文件吗? 我已经搜索了此问题,但找不到

  • wgcloud忘记密码了怎么重置 找回密码