Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP - uniqid(,true) срещу uniqid()+mt_rand()

Без да използвате повече ентропия, uniqid прави основно следното (вижте източник на uniqid.c ):

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

Така че основно отнема текущото време в микросекунди и ги превръща в шестнадесетично представяне и го добавя към префикса. Това вече предоставя уникални стойности.

Но стойностите не са съвсем случайни. За да получите повече произволни стойности, трябва да добавите повече ентропия, като зададете втория параметър more_entropy . В този случай вътрешният линеен конгруентен генератор на PHP php_combined_lcg (вижте източник на lgc.c ) се използва за генериране на псевдослучайно число, което е прикрепено в края, добавяйки около 30 бита допълнителна ентропия, за да ги направи по-случайни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL LIMIT в корелирана подзаявка

  2. JDBC на Google Apps Script. Изключение:Изявлението е анулирано поради изчакване или клиентска заявка

  3. Какви са най-добрите практики за самоактуализиращи се PHP+MySQL приложения?

  4. Как да изтрия последния запис (при условие) от таблица в MySql

  5. Изпълнете множество заявки с помощта на един обект на JDBC Statement