【问题标题】:Storing revertable authentication data [duplicate]存储可恢复的身份验证数据[重复]
【发布时间】:2015-07-02 20:08:01
【问题描述】:

有时会想到一些愚蠢的事情,但我想知道您是否可以就这种情况分享一些见解。

假设我想创建一种能够连接到远程服务器(通过 FTP 或其他方式)的服务。如果有人为该服务创建一个帐户,他们将需要存储他们的登录凭据。当然,您希望安全地保存数据,并且存在许多关于密码散列的主题。但是,如果您以后需要使用该密码怎么办?在这种情况下;连接到远程主机。

一个真实的例子:我正在使用 CodeAnywhere 的服务,以防我无法访问装有开发软件的计算机。这种情况也适用于那里。

然后连接从服务器 A 到服务器 B。在服务器 A 上,使用服务器 B 管理东西(文件)。在服务器 B 上,创建一个帐户以使用服务器 B 的服务,并与服务器 A 建立连接,存储服务器 A 的授权数据。

人们是否正在创建自己的“哈希”规则以便能够将 mypassword 之类的内容存储为 drowsappym。在此示例中,密码被还原。但也会想到其他事情:为每个字符使用 unicode 点,或为每个字符创建映射模式(例如 a=i,b=Q,c=*, and so on..)。当然,您不仅要保护密码,还要保护所有授权数据。

期待回复。

【问题讨论】:

  • ...您在寻找类似enpass 的东西吗?
  • 我不是专门寻找应用程序。我正在寻找您想要实现此目标时使用的技术/最佳实践。
  • 使用RSA认证怎么样?假设你可以转移你的私钥?
  • 公钥/私钥对绝对是您所需要的,以确保加密的对称性(并能够检索您的密码)。
  • 你在使用 MySQL 吗?

标签: php security hash password-recovery


【解决方案1】:

我想解释一下我会使用的两种方法。

  1. 使用mcrypt_encrypt存储加密密码,稍后使用mcrypt_decrypt获取明文密码。
  2. 如果您正在使用 MySQL,那么您还应该看看 DES_ENCRYPT

这些是我猜的最快的方法,它们也提供了一些相当不错的安全性,当然,如果有人闯入您的系统,那么这可能是一个问题,但如果您使用 RSA 也会发生这种情况使用起来也更复杂。

【讨论】:

  • 这两种方法都可以实现目标,但如果数据库被黑了怎么办。然后尝试其中一些方法并检查凭据是否匹配将是一件容易的事。我不知道这些功能,所以阅读它们是件好事。 +1
  • 如果您使用 mcrypt_encrypt 即使您的数据库被黑客入侵并且您的密钥存储在 PHP 文件中,也无法(轻松)解密。但是,如果您的系统被黑客入侵,则无法保护密码,因为在某些时候您的逻辑中的某些地方会有解密的方法。这就是为什么我们通常使用不可恢复的哈希来存储密码
  • 我同意你的看法。在代码中使用盐可以消除(或解决)问题。确实,当一切都受到威胁时,除了首先考虑如何被黑客入侵之外,别无他法。
  • @Ben 没错,所以我想如果你以后需要纯文本密码,我想这是一种方法!
猜你喜欢
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2013-11-03
  • 2018-08-26
  • 2017-05-07
相关资源
最近更新 更多