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

PHP - uniqid (, true) so với uniqid () + mt_rand ()

Không sử dụng thêm entropy, uniqid về cơ bản thực hiện như sau (xem nguồn của uniqid.c ):

$time = explode(' ', microtime(false));
return sprintf('%s%08x%05x', $prefix, $time[1], $time[0] * 1000000);

Vì vậy, về cơ bản nó lấy thời gian hiện tại tính bằng micro giây và biến chúng thành một biểu diễn thập lục phân và gắn nó vào tiền tố. Điều này đã cung cấp các giá trị duy nhất.

Nhưng các giá trị không hoàn toàn ngẫu nhiên. Để nhận được nhiều giá trị ngẫu nhiên hơn, bạn nên thêm nhiều entropy hơn bằng cách đặt tham số thứ hai more_entropy . Trong trường hợp đó, trình tạo đồng dư tuyến tính nội bộ của PHP php_combined_lcg (xem nguồn của lgc.c ) được sử dụng để tạo một số giả ngẫu nhiên được đính kèm ở cuối, thêm khoảng 30 bit entropy bổ sung để làm cho chúng trở nên ngẫu nhiên hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại lỗi cú pháp không hợp lệ =MyISAM trong DDL được tạo bởi Hibernate

  2. Cơ sở dữ liệu - Thiết kế Bảng sự kiện

  3. Đếm số lần xuất hiện của từ trong một cột bảng

  4. Không thể kết nối với MySQL trên Mac - thiếu tệp mysql.sock

  5. Cột 'Dấu thời gian cập nhật' của MySQL - Trình kích hoạt