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

Generowanie unikalnych numerów śledzenia

W przypadku bezsensownych danych, skróty czasu plus sól są zawsze solidne i nie można ich łatwo odgadnąć (wybacz Pythonowi, słyszałem tego Rubiego, ale nigdy nie trzymałem go w rękach):

>>> hashlib.md5(str(time.time()) + "!salt!").hexdigest()
'7a8b73fa7e0dadf246612e6001ede165'

Skróć go, jeśli chcesz:

>>> hashlib.md5(str(time.time()) + "!salt!").hexdigest()[:16]
'46ffb69ebc96412d'

Zamiast tego użyj liczby całkowitej, jeśli chcesz, ale długość może się różnić w zależności od tego kodu, chyba że wpiszesz zero:

>>> int(hashlib.md5(str(time.time()) + "!salt!").hexdigest()[:13], 16)
1346212029197308

Przedtem „zomg md5 nie jest bezpieczny krypto”:

>>> int(hashlib.sha256(str(time.time()) + "!salt!").hexdigest()[:13], 16)
1948411134966366

Cholera, nie musisz nawet używać czasu, możesz użyć automatycznej liczby całkowitej, o ile ją posolisz:

>>> int(hashlib.sha256(str(1) + "!salt!").hexdigest()[:13], 16)
1269883740611281
>>> int(hashlib.sha256(str(2) + "!salt!").hexdigest()[:13], 16)
3655373802716929

Hasze. Czy jest coś, czego nie mogą? zrobić?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie MySQL w celu wybrania dat, w których pole ma wartość NULL lub wartość daty pola nie jest większa niż inna data

  2. MySQL — BŁĄD 1045 — Odmowa dostępu

  3. django.db.utils.OperationalError:(2013, Utracono połączenie z serwerem MySQL podczas 'handshake:odczyt początkowego pakietu komunikacyjnego', błąd systemu:0)

  4. Optymalizacja wydajności zapytań w MySQL

  5. hibernacja częściowo aktualizuje się, gdy encja jest analizowana za pomocą json