Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menghasilkan nomor pelacakan unik

Untuk data yang tidak berarti, hash waktu ditambah garam selalu solid, dan tidak dapat ditebak dengan mudah (maafkan Python, saya pernah mendengar dari benda Ruby ini tetapi tidak pernah memegangnya di tangan saya):

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

Persingkat, jika Anda suka:

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

Gunakan integer sebagai gantinya, jika Anda suka, tetapi panjangnya memiliki peluang untuk bervariasi dengan kode ini, kecuali Anda zero-pad:

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

Sebelum "zomg md5 tidak aman untuk kripto":

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

Sial, Anda bahkan tidak perlu menggunakan waktu, Anda dapat menggunakan bilangan bulat autoincrementing, selama Anda memberi garam:

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

Hash. Apakah ada yang tidak bisa lakukan?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. disimpan di bidang mysql tetapi tidak ada jeda baris saat gema

  2. Bagaimana menemukan perbedaan antara dua tabel MySQL menggunakan pernyataan MySQL?

  3. phpMyAdmin - Kesalahan> Parameter format salah?

  4. embed database mysql di aplikasi java

  5. Facebook PHP SDK - Simpan data pengguna ke database MYSql