Por que a função SlowEquals é importante para comparar senhas com hash?
Li recentemente um artigo sobrehash e salga de senha em que foi explicado (em "Como o código SlowEquals funciona?") que uma função SlowEquals deve ser usada para comparar o hash da senha digitada com o hash da senha no banco de dados.
Pelo que entendi, a função SlowEquals é usada porque usa XOR em vez de == e, como resultado, verifica todos os caracteres nas duas seqüências, em vez de falhar nos primeiros caracteres não correspondentes.
Há duas coisas que não entendo:
Por que o XOR continuará verificando a sequência depois que uma condição de falha for atingida.Se a idéia principal é não fornecer ao invasor nenhuma informação útil ao tentar decifrar uma senha, uma função sleep () com um tempo gerado aleatoriamente não funcionaria bem?