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 प्रत्येक पंक्ति में अन्य तालिका से पंक्तियों की संख्या दिखाएं

  2. MySQL में टेक्स्ट कॉलम में स्ट्रिंग खोजें

  3. PHP का उपयोग करके MySQL डेटाबेस से छवियों को कैसे पढ़ा जाए?

  4. कोडनिर्देशक simple_query बनाम क्वेरी बिल्डर (सम्मिलित करें, अपडेट करें और हटाएं)

  5. MySQL डेटाबेस का बैकअप और रिस्टोर कैसे करें?