Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Unikalne pole tekstowe w MySQL i php

W przypadku soli wyjątkowość jest ważniejsza niż długość i przewidywalność. Zakładasz, że atakujący ma sól.

Najlepiej byłoby użyć uniwersalnego unikalnego identyfikatora (UUID), a są przykłady, które generują uniwersalnie unikalne identyfikatory na stronie z dokumentacją dla php uniqueid() funkcjonować. UUID ma tę przewagę nad losowym ciągiem, że jest czytelny dla człowieka i ma stałą długość, dlatego można go przechowywać w polu varchar i używać unikalnego indeksu, aby mieć pewność, że nigdy nie będzie duplikatów.

Haszowanie czasu za pomocą MD5 jest powszechną metodą generowania unikalnych wartości, ponieważ ma stałą długość i jest czytelny dla człowieka. Jednak bardziej sensowne jest wygenerowanie losowego ciągu o stałej długości i samodzielne zakodowanie go w postaci szesnastkowej. Hasze nie są tak zaprojektowane, aby były unikatowe, ale są zaprojektowane tak, aby nie były odwracalne. Używanie funkcji mieszającej gwarantuje kolizje, chociaż będzie mniej kolizji z SHA1 niż MD5.

Długość soli jest tak naprawdę tylko czynnikiem, ponieważ im dłuższa sól, tym większe prawdopodobieństwo, że będzie ona uniwersalnie wyjątkowa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. left join z warunkiem dla prawej tabeli w mysql

  2. Określanie aliasu kolumny ze zmienną zdefiniowaną przez użytkownika

  3. sql do obliczania punktów za gry

  4. MySQL zmienia UTF-8 na ASCII-8BIT

  5. Funkcja MySQL CRC32() – Przykłady