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,

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top