Mysql
 sql >> база данни >  >> RDS >> Mysql

Генериране на уникални номера за проследяване

За безсмислени данни, хешовете на времето плюс сол винаги са стабилни и не могат да бъдат отгатнати лесно (простете на Python, чувал съм от това нещо Ruby, но никога не съм го държал в ръцете си):

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

Съкратете го, ако желаете:

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

Вместо това използвайте цяло число, ако желаете, но дължината има възможност да варира с този код, освен ако не поставите нула:

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

Преди „zomg md5 не е крипто защитен“:

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

По дяволите, дори не е нужно да използвате време, можете да използвате автоматично увеличаващо се цяло число, стига да го солите:

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

Хешове. Има ли нещо, което те не могат правя?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. създаване на база данни за проследяване кои потребители са щракнали върху кои връзки?

  2. PHP и mySQL:Бъг от 2038 г.:Какво е това? Как да го реша?

  3. Избиране на база данни в mysql с интервали в името

  4. INSERT INTO или UPDATE с две условия

  5. Как да направя моята функция за нулиране на парола на codeiginter защитена?