Ahoy Stack Overflow! Esta debe ser la primera publicación ...Generando ID de usuario único fuerte con PHP y MySQL
Estoy intentando identificar a los usuarios con una clave pública única salada.
- Algoritmo - ¿Debo usar uniqid(), SHA256, SHA512, algo más? Todos los hash serán salados. NIST recomendó SHA256, pero prefiero escuchar lo que otros podrían sugerir.
- Generación - ¿Tiene (+
AUTO_INCREMENT_PK
+CREATED_TIMESTAMP
SAL) basta de hash? Más entropía?- Utilizaría el correo electrónico, ya que es único para cada usuario, sin embargo, el usuario puede modificar su dirección de correo electrónico. También estaba considerando almacenar signup_email para que los hash no tengan que volver a calcularse.
- de almacenamiento de MySQL - En la actualidad, de nuestros identificación son INT (255)
auto_increment
la clave primaria de. Como se dijo anteriormente, potencialmente cientos de millones de claves. Dependiendo del crypto algo, debería tener una ID de tamaño fijo. ¿Puedo mantener INT (255) o debería usar CHAR (n)?
---------------------- Thanks for reading :) -------------------------------
supongo un objetivo complementario: es la velocidad total de este tipo de sistema que va a ser mejor que el uso de números enteros incrementales, y es que vale la velocidad para obtener seguridad adicional? ¿Estoy en lo cierto al pensar que INT puede almacenar hexadecimal de manera eficiente? según la sugerencia del will, creo que probaré sha256. – brack