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

PHP - uniqid(,benar) versus uniqid()+mt_rand()

Tanpa menggunakan lebih banyak entropi, uniqid pada dasarnya melakukan hal berikut (lihat sumber uniqid.c ):

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

Jadi pada dasarnya membutuhkan waktu saat ini dalam mikrodetik dan mengubahnya menjadi representasi heksadesimal dan menambahkannya ke awalan. Ini sudah memberikan nilai unik.

Tetapi nilainya tidak cukup acak. Untuk mendapatkan lebih banyak nilai acak, Anda harus menambahkan lebih banyak entropi dengan menyetel parameter kedua more_entropy . Dalam hal ini generator kongruensial linier internal PHP php_combined_lcg (lihat sumber lgc.c ) digunakan untuk menghasilkan angka pseudo-acak yang dilampirkan di bagian akhir, menambahkan sekitar 30 bit entropi tambahan untuk membuatnya lebih acak.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pertanyaan Dasar MySQL

  2. Pencarian Teks Lengkap dengan InnoDB

  3. Sertakan hasil nol di group_concat

  4. Bagaimana cara menyimpan output kueri MySQL ke file excel atau .txt?

  5. Bagaimana cara menghubungkan mysql dengan swift?