【发布时间】:2015-10-24 18:48:54
【问题描述】:
首先说明一下,我是一名Coldfusion服务器端开发人员,多年来一直尽职尽责地对登录密码进行加密。
我最近开始更仔细地考虑使用 bCrypt() 等库对密码进行散列或加密的要点。黑客经常使用 SQL 注入来获取敏感数据,如银行账户详细信息、NI 号码和信用卡/借记卡号码。考虑到如今单个信用卡号的售价相对较低,我非常怀疑黑客是否会费心出售密码。
所以,我的问题是:
首先加密登录密码实际上有什么意义吗?
【问题讨论】:
-
当然是必须的。您应该对您的用户负责,如果您的数据库遭到破坏,他们的密码将无法在其他服务上用于访问他们。
-
但这假设用户对其他帐户使用相同的密码。黑客不会花时间登录其他帐户。他们将进行 SQL 注入,直到他们直接在数据库中找到银行详细信息。
-
实际上,我认为加密密码不是一个好主意。加密意味着可逆性。 是 一个好主意是用足够大的随机盐(您也记录)反复对它们进行散列。散列的周期数可能非常大(例如 1024 或更多)。关于这个话题还有很多其他问题。另请参阅[加密/哈希数据库中的纯文本密码](stackoverflow.com/questions/287517 和 Difference between hashing a password and encrypting it,这些只是来自相关问题。
-
我其实用的是bCrypt,不能解密。它使用机器时间戳将盐存储在其哈希中:mindrot.org/projects/jBCrypt
标签: encryption passwords