Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Campo de texto exclusivo em MySQL e php


Para um sal, a singularidade é mais importante do que o comprimento e a previsibilidade. Você assume que o atacante tem o sal.

Um identificador universalmente exclusivo (UUID) seria melhor, e há exemplos que geram identificadores universalmente exclusivos na página doc para o php uniqueid() função. Um UUID tem a vantagem sobre uma string aleatória, pois é legível por humanos e um comprimento fixo, portanto, você pode armazená-lo em um campo varchar e usar um índice exclusivo para garantir que nunca haja duplicatas.

O hash do tempo com MD5 é um método comum para gerar valores exclusivos porque tem um comprimento fixo e é legível por humanos. No entanto, faz mais sentido apenas gerar uma string aleatória de comprimento fixo e codificá-la em hexadecimal. Hashes não são projetados para exclusividade, mas sim para não serem reversíveis. O uso de uma função de hash garante colisões, embora haja menos colisões com SHA1 do que com MD5.

O comprimento do sal é realmente apenas um fator, porque quanto maior o sal, mais provável é que seja universalmente único.