sil*_*low 5 php security encryption hash
I have a field (regular field, not a password) that is being stored in the database twice: as a hash (SHA512) and as an encrypted value. Changing this setup would require many changes which I don't want to get myself into. My question: in the case that the database is broken into, does the fact that the field is being stored twice as a hash and encrypted weakens its security? why?
有些人说是的,因为现在他们有两种方法可以破解它.呃,我知道.我要问的是,是否可以使用一个更容易破解另一个?事实上该字段有两种变化可以让攻击者更容易使用一个来破解另一个吗?以这种方式看待它:如果攻击者只获得变体A,那么它将花费一天时间.如果仅给出变体B,则需要3天.如果攻击者独立地运行两个裂缝,他们会更快地破解变体A(只需要一天).但如果同时给予攻击者,他们可以在短短6个小时内攻击一个.这就是我要问的问题.
假设散列和加密方法在密码学上是强大的,那么攻击将是暴力攻击。因此,成本将是运行两者中较弱的一个:散列或加密。如果散列是通过大量迭代计算的(例如,使用 PBKDF2),并且加密是通过散列函数的单次迭代运行密码的简单应用来获取密钥数据,则加密值实际上是CPU成本方面的弱点。在这种情况下,答案是存储两者并不会真正削弱它,而是加密值会削弱它。
编辑以专门解决更新的问题。从数学的角度来看,我怀疑很难证明攻击者无法以某种方式使用这两个数据来减少攻击时间。针对散列和加密而设计的一些攻击非常复杂,因此看起来是有可能实现的。我确实知道在某些情况下可以减少攻击时间。一个非常具体的例子:
假设攻击者可以通过某种方式从加密版本中获知密码的长度。这将大大减少暴力破解哈希版本的时间。