Php 安全问题的答案应该散列吗?

Php 安全问题的答案应该散列吗?,php,mysql,hash,md5,Php,Mysql,Hash,Md5,我正在为一个web应用程序管理部门的安全系统工作。如果一个管理员想在应用程序中做一些重要的更改,他需要回答一个安全问题 我的问题是:这个问题的答案应该在数据库中散列 另外,我想让管理员可以更改他们的问题/答案,但管理员可以这样做,只要他用密码确认他的身份。这是一个好方法吗?在我看来,散列是一个好主意。因为除了原始用户之外,没有人真的需要知道它,所以最好不要让窥探者看到更多的“秘密” 就更改密码的能力而言,这也是一个好主意,要求他/她输入密码以更改密码是另一个很好的安全方法 我认为你的想法是正确的

我正在为一个web应用程序管理部门的安全系统工作。如果一个管理员想在应用程序中做一些重要的更改,他需要回答一个安全问题

我的问题是:这个问题的答案应该在数据库中散列


另外,我想让管理员可以更改他们的问题/答案,但管理员可以这样做,只要他用密码确认他的身份。这是一个好方法吗?

在我看来,散列是一个好主意。因为除了原始用户之外,没有人真的需要知道它,所以最好不要让窥探者看到更多的“秘密”

就更改密码的能力而言,这也是一个好主意,要求他/她输入密码以更改密码是另一个很好的安全方法


我认为你的想法是正确的

>P>是的,但是在散列小写之前要确保它正常化,考虑删除所有不是字母数字的字符等。如果我输入“Cejayayoz”作为我的问题,它也应该接受“CEJEAYOZ”。标准化时,

+ 1。我通常是自己做这件事的,但是很好的建议是按程序做!当被问到一个安全问题时,我总是有点汗流浃背,我想,“我把初等/州/姓放在上面了吗?”@ceejayoz使用strtolower()进行规范化是否足够?取决于这个问题。至少我会把
trim()
扔进去。如果你要问妈妈的姓,那两个就足够了。如果你要询问街道名称,你可能想删除一些常见的东西,如“Rd.”、“Rd”和“Road”等,这样他们就不必记住他们使用了哪种变体。@ceejayoz我想让管理员可以编辑他们的问题,但这有点“危险”,因为他们可以添加愚蠢而简单的问题?!我也在考虑在散列/检查之前使用strtolower?!是的,请看ceejayoz的回复,这是解决安全问题的一个很好的方法,因为大多数人都不记得用于它的确切案例等。添加修剪和折叠所有空格。对密码进行哈希运算并让“安全问题和答案”易于理解是没有意义的。为什么不让他们再次输入密码呢?确保使用正确的哈希技术。首先,确保在散列时使用随机盐(也称为nonce)。其次,确保您使用的哈希算法没有被认为是坏的。这意味着没有MD5,没有SHA-1,绝对没有更老的。要考虑的一些散列是SHA256/512、BCRIPT/EksBoWFISH(同一事物)和惠而浦。快乐的散列@Jared我认为最好避免过多地使用密码,因为人们仍然使用安全问题?为什么不将重置密码链接发送到他们的电子邮件中呢?秘密问题的问题在于,它们总是你在第一次约会时告诉某人的事情。辅助销会更好。