bcrypt e sais gerados aleatoriamente
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.
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).
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.
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:
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.
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.
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