sql >> Database >  >> RDS >> Mysql

Uniek tekstveld in MySQL en php

Voor een zout is uniciteit belangrijker dan lengte en voorspelbaarheid. Je gaat ervan uit dat de aanvaller het zout heeft.

Een universeel unieke identifier (UUID) zou het beste zijn, en er zijn voorbeelden die universeel unieke identifiers genereren op de doc-pagina voor de php uniqueid() functie. Een UUID heeft het voordeel ten opzichte van een willekeurige tekenreeks omdat deze leesbaar is voor mensen en een vaste lengte heeft. Daarom kunt u deze opslaan in een varchar-veld en een unieke index gebruiken om ervoor te zorgen dat er nooit duplicaten zijn.

Het hashen van de tijd met MD5 is een veelgebruikte methode om unieke waarden te genereren, omdat het een vaste lengte heeft en leesbaar is voor mensen. Het is echter logischer om gewoon een willekeurige reeks met een vaste lengte te genereren en deze zelf in hex te coderen. Hashes zijn niet zozeer ontworpen voor uniciteit als wel om niet omkeerbaar te zijn. Het gebruik van een hashing-functie garandeert botsingen, hoewel er minder botsingen zullen zijn met SHA1 dan met MD5.

De lengte van het zout is eigenlijk alleen een factor, want hoe langer het zout, hoe groter de kans dat het universeel uniek is.



  1. Hoe u alle tabellen met identiteitskolom in SQL Server-database kunt vinden - SQL Server / T-SQL-zelfstudiedeel 45

  2. SQL-syntaxisprobleem en/of codeprobleem? Index viel buiten de grenzen van de array.

  3. DISTINCT ON in django

  4. Mysql Sorteer op achternaam bij volledige naam voor kolom