Database 银行是否将密码存储为纯文本?

Database 银行是否将密码存储为纯文本?,database,passwords,password-storage,Database,Passwords,Password Storage,我见过一些网站,特别是银行网站,要求你输入这个(例如)。有时他们会在电话里要求证明我的身份 密码的第二个字符 密码的第5个字符 密码的第6个字符 要做到这一点,散列算法是行不通的,不是吗?当然,应该像银行一样安全的东西会有一种存储不可解密密码的方法吗?在公开论坛上讨论这可能不是一个好项目,但如何阻止他们将您选择的字符插入到存储在适当位置的、经解密的、您记忆中的短语或单词的副本中,加密它并对结果执行二进制比较?我想他们会有某种私钥系统进行解密(甚至可能每个帐户都有一个私钥,以提高安全性)是的,

我见过一些网站,特别是银行网站,要求你输入这个(例如)。有时他们会在电话里要求证明我的身份

  • 密码的第二个字符
  • 密码的第5个字符
  • 密码的第6个字符

要做到这一点,散列算法是行不通的,不是吗?当然,应该像银行一样安全的东西会有一种存储不可解密密码的方法吗?

在公开论坛上讨论这可能不是一个好项目,但如何阻止他们将您选择的字符插入到存储在适当位置的、经解密的、您记忆中的短语或单词的副本中,加密它并对结果执行二进制比较?

我想他们会有某种私钥系统进行解密(甚至可能每个帐户都有一个私钥,以提高安全性)

是的,这可以在不持有密码的纯文本版本的情况下工作。简单地说,当您最初设置密码时,银行将对其要求的各种组合进行散列,并存储这些散列。这是非常容易实现的,无论您使用的是固定长度密码(即PIN码)还是可变长度密码。这些散列可以存储在与用户相关的表中的一系列预设列中,或者作为一个简单的3列表-ID(主键)、UserId、散列存储,并且密码中的n个字符的每一个组合都有一行


我怀疑这种方法的有效性,而不是要求整个密码,虽然。。。也许有人对此有意见?

他们可以很容易地保留单个字符的散列,不是吗


实际上,您不必使用单向散列。如果您确信您的密钥是安全的,那么您可以同样轻松地使用双向密码。在这种情况下,他们可以很容易地将密码保存在无法从网络访问的系统上。

如果(一些)银行(或其他大公司)真的存储纯文本密码,或ROT13密码,甚至双ROT13密码,这就不太奇怪了

如果你真的想知道,为什么不问问银行。这不是一个坏主意,但我想我可能会被搁置至少两个小时,直到我找到一个甚至知道数据库是如何建立的人。特别是我不关心它,只是感兴趣;D