Przepełnienie stosu Ahoy! To będzie pierwszy post ...Generowanie silnego unikalnego identyfikatora użytkownika w/PHP i MySQL
Próbuję zidentyfikować użytkowników z solonym unikalnym kluczem publicznym.
- Algorytm - Czy mogę używać uniqid(), sha256, sha512, coś innego? Wszystkie skróty zostaną zasolone. NIST zalecił SHA256, ale wolę usłyszeć, co inni mogą zasugerować.
- Generation - Czy hash (sól +
AUTO_INCREMENT_PK
+CREATED_TIMESTAMP
) wystarczy? Więcej entropii?- Korzystałbym z poczty e-mail, ponieważ jest ona unikalna dla każdego użytkownika, jednak użytkownik może modyfikować swój adres e-mail. Rozważałem również przechowywanie konta signup_email, aby skróty nie musiały być ponownie obliczane.
- MySQL bagażu - Obecnie nasze ID są INT (255)
auto_increment
klucz podstawowy jest. Jak wspomniano wcześniej, potencjalnie setki milionów kluczy. W zależności od crypto algo powinienem mieć stały rozmiar. Czy mogę zachować INT (255) czy powinienem użyć CHAR (n)?
---------------------- Thanks for reading :) -------------------------------
Chyba dodatkowy cel: jest ogólna szybkość tego rodzaju systemu będzie lepsza niż przyrostowe liczb całkowitych, a warto prędkość zyskać dodatkowe zabezpieczenie? Czy mam rację, myśląc, że INT może przechowywać efektywnie hex? zgodnie z sugestią woli, myślę, że spróbuję sha256. – brack