【问题标题】:Is there anyway to send someone a password that they can use but cannot see?有没有办法向某人发送一个他们可以使用但看不到的密码?
【发布时间】:2013-07-10 21:09:56
【问题描述】:

只是想编写一个简单的脚本,我对密码有一个小问题。

我是否可以向某人发送一个他们自己看不到但可以用来说将他们的 Facebook 密码更改为以阻止他们自己登录的随机密码?然后,我将在稍后的指定时间将可见密码发送给他们。

这纯粹是为了教育目的,因为我只是在这里和那里构建一些小应用程序来学习 php 和 mysql。

示例:朋友想离开 Facebook 3 小时。他使用网络应用程序,我通过电子邮件向他发送一个随机生成的密码,让他将他当前的 FB 密码更改为。但是,在电子邮件中对他是隐藏的。 3 小时后,他收到另一封电子邮件,允许他使用它。

我知道可能有一些更简单/更清晰的方法可以实现我的最终目标,但我只是对此本身感到好奇!

非常感谢

【问题讨论】:

  • 您没有发送密码。您发送一些加密/散列值并将该值用作一次性“密码”,一旦使用就会过期 - 就像在大多数密码重置电子邮件中一样。 “在 X 小时内单击此处重置...”。
  • 您可以生成指向随机密码的随机字符串。所以,用户只能看到第一个随机字符串
  • 让我给你一条建议:永远不要干涉用户密码。曾经。只留下密码。如果你不想警察在你家门口。这不是孩子们的游戏。密码不是用于此目的
  • 我不敢相信我在这里看到了这样的对话。如果提到不起眼的 md5() 来散列密码,就会被打得一塌糊涂。与此同时,每个人都非常渴望讨论只是放弃他们的帐户。
  • @relentless 对于计算机犯罪,它得到了所有联邦和东西......在错误的日子里找错了法官,你会发现自己变得更穷了,一些囚犯只是因为好奇而成为性玩具,更不用说之后在计算机领域找到一份工作有点困难。

标签: php mysqli passwords password-protection password-encryption


【解决方案1】:

如果您发送的电子邮件包含允许用户登录的“某些内容”,那么您就是在向他们发送密码,并且如果该密码可从电子邮件中单击/复制,他们就会看到它。无论密码是直接与存储值匹配的纯文本(如“thi$ismyPa$$word”),还是在输入时被解密以匹配存储值的其他加密值都是无关紧要的,用户都知道那是什么值是(因为他们必须输入它)。为了让用户提供价值,他们必须拥有价值。正如其他人所提到的,您可以在您的应用程序中实现一次性使用密码,但这不适用于 facebook 实现,因为它不是您的应用程序,您无法控制它的功能。简短的回答是,如果您向用户提供一些用于访问系统的内容(如电子邮件),那么他们可以看到登录所需的值。

【讨论】:

    【解决方案2】:

    传统的方法是根据密码计算某种哈希值,然后发送。有一种单向算法,例如 MD5,可以做到这一点。这样,就可以确保密码的一致性,而无需发送密码本身,也无需从中推断出密码。

    为了更高的安全性,可以同时发送哈希和校验和:这样哈希本身就不会被截获并作为密码的代理发送:除非哈希和校验和值一致,否则不会进行身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 2016-05-29
      • 2020-11-04
      • 2017-11-28
      • 1970-01-01
      • 2022-11-05
      • 2014-07-13
      相关资源
      最近更新 更多