Expandindo e usando o código de geração de sal para um sistema de login PHP
-
16-12-2019 - |
Pergunta
Estou trabalhando em um sistema de login PHP / MySQL para um WebProject.Depois de olhar através de modo e um monte de artigos na Web Ive apresenta uma estrutura básica e comecei a escrever algum código para isso.No entanto, venha a um pouco de um impasse na criptografia de senha.
Depois de uma noite de leitura, descobri que:
- Eu deveria a senha dos usuários com pelo menos SHA1 ou SHA2
- Eu também devo usar um sal gerado aleatoriamente (é isso que eu preciso de ajuda) e anexá-lo à senha antes de criptografá-lo
- A senha do Hashed e o sal gerado aleatoriamente devem ser armazenados no banco de dados e, em seguida, consultados / combinados / criptografados e, em seguida, verificados com a senha do Hashed.
Meu problema está vindo em geração aleatoriamente o sal,
Solução
possibilidades que posso pensar:
-
use mt_rand () em um loop para escolher um código ASCII, obter o caractere correspondente com < um href="http://php.net/chr%28%29" rel="nofollow"> chr () e concatenate para sal.
Isso permite criar sais com qualquer comprimento.
-
Defina uma string com caracteres disponíveis, use mt_rand () em um loop para escolher posições aleatórias de Ele extraia o personagem na posição selecionada com substr () ou mb_substr () <./a> e concatenate para sal.
Isso permite criar sais com um conjunto de caracteres e comprimento de caracteres escolhidos.
-
use uma função interna que gera uma cadeia aleatória (por exemplo, UNIQID () ) e opcionalmente hash .
Isso é rápido e simples.
Eu normalmente uso a segunda opção.
Outras dicas
uniqid ()?