Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tạo số theo dõi duy nhất

Đối với dữ liệu vô nghĩa, các hàm băm thời gian cộng với một muối luôn chắc chắn và không thể đoán được dễ dàng (tha thứ cho Python, tôi đã nghe nói của thứ Ruby này nhưng tôi chưa bao giờ cầm nó trên tay):

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

Hãy rút ngắn nó, nếu bạn thích:

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

Thay vào đó, hãy sử dụng một số nguyên, nếu bạn thích, nhưng độ dài có thể thay đổi theo mã này, trừ khi bạn không có dấu đệm:

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

Trước "zomg md5 không an toàn bằng tiền điện tử":

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

Chết tiệt, bạn thậm chí không cần phải sử dụng thời gian, bạn có thể sử dụng một số nguyên tự động cộng gộp, miễn là bạn muối nó:

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

Băm. Có điều gì họ không thể làm gì?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tạo bảng (errno:150) trên FOREIGN KEY

  2. Cách sử dụng cURL để tìm nạp dữ liệu cụ thể từ một trang web và sau đó lưu nó vào cơ sở dữ liệu của tôi bằng php

  3. Làm cách nào để kết hợp LIKE với IN trong một truy vấn MYSQL?

  4. Thay thế ký tự đại diện MySQL

  5. Chọn truy vấn | Chọn các mục không bắt đầu bằng số - MySQL