"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O sal gerado aleatoriamente afeta a verificação de senha com bcrypt?

O sal gerado aleatoriamente afeta a verificação de senha com bcrypt?

Publicado em 2024-11-10
Navegar:262

Does Randomly Generated Salt Affect Password Verification with bcrypt?

bcrypt e sais gerados aleatoriamente

Background

bcrypt é um algoritmo de hash de senha que utiliza salting para aumentar a segurança. Salting envolve a incorporação de dados aleatórios no hash da senha, garantindo que mesmo senhas idênticas produzirão resultados de hash diferentes.

Geração de Salt e Hashing

A classe PHP fornecida inclui uma função chamada genSalt() que gera um sal aleatório usando a função openssl_random_pseudo_bytes(). Este salt é então usado como parte do processo de hashing bcrypt na função genHash().

A função genHash() pega uma senha e a combina com o salt gerado aleatoriamente. O hash resultante é uma mistura da senha original, salt e um prefixo específico do algoritmo ($2y$) que indica o algoritmo bcrypt e seus parâmetros (por exemplo, fator de carga de trabalho).

Verificação de senha

Para verificar uma senha, a função verify() fornecida compara a senha inserida com o hash armazenado. Ele faz isso concatenando a senha fornecida com o hash armazenado e usando a função crypt() para fazer o hash novamente.

Compreendendo a lógica de comparação de hash

A chave para entender por que o salt gerado aleatoriamente não afeta a verificação da senha é examinar o formato do hash armazenado. O hash consiste em duas partes principais:

  1. Um prefixo de algoritmo ($2y$), fator de carga de trabalho (por exemplo, 10) e salt (por exemplo, abcdefg...)
  2. A senha com hash

Quando a função verify() faz o hash da senha fornecida com o hash armazenado, ela usa apenas a parte salt como entrada. Isso garante que o salt seja incorporado ao processo de verificação.

Conclusão

Em resumo, embora o bcrypt gere sais aleatórios para garantir a segurança da senha, o processo de verificação de senha leva em consideração apenas a parte salt do o hash armazenado. Isso permite que a senha fornecida seja verificada em relação ao hash armazenado, mesmo que o salt seja gerado aleatoriamente.

Declaração de lançamento Este artigo foi reimpresso em: 1729415415 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3