sql >> Database teknologi >  >> RDS >> Mysql

Generering af unikke sporingsnumre

For meningsløse data er hashes af tiden plus et salt altid klippefaste og kan ikke let gættes (tilgiv Python, jeg har hørt af denne Ruby-ting, men aldrig holdt den i mine hænder):

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

Forkort det, hvis du vil:

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

Brug et heltal i stedet, hvis du vil, men længden har mulighed for at variere med denne kode, medmindre du nul-pad:

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

Indenfor "zomg md5 er ikke kryptosikker":

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

For helvede, du behøver ikke engang bruge tid, du kan bruge et autoinkrementerende heltal, så længe du salter det:

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

Hashes. Er der noget, de ikke kan gøre?



  1. Når du udfører en lagret procedure, hvad er fordelen ved at bruge CommandType.StoredProcedure i forhold til at bruge CommandType.Text?

  2. Brug FullCalendar uden dato

  3. Protokolbrud:FEJL:bindingsmeddelelse leverer 0 parametre, men forberedt sætning kræver 1

  4. CodeIgniter og AJAX formular indsendes