यदि आपके पास एक क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक संख्या जनरेटर है, तो आपको इसे आउटपुट करने की आवश्यकता नहीं है। वास्तव में आप नहीं करना चाहते हैं। महज प्रयोग करें
$token = openssl_random_pseudo_bytes($BYTES,true)
हालांकि $ BYTES डेटा के कई बाइट्स आप चाहते हैं। एमडी 5 में 128 बिट हैश है, इसलिए 16 बाइट करेंगे।
एक साइड नोट के रूप में, आपके मूल कोड में आपके द्वारा कॉल किए जाने वाले कोई भी फ़ंक्शन क्रिप्टोग्राफिक रूप से सुरक्षित नहीं हैं, अधिकांश यह हानिकारक हैं कि केवल एक का उपयोग करना असुरक्षित होगा भले ही सुरक्षित अन्य कार्यों के साथ संयुक्त हो। एमडी 5 में सुरक्षा मुद्दे हैं (हालांकि इस एप्लिकेशन के लिए वे प्रासंगिक नहीं हो सकते हैं)। Uniqid न केवल डिफ़ॉल्ट रूप से क्रिप्टोग्राफिक रूप से यादृच्छिक बाइट्स उत्पन्न नहीं करता है (क्योंकि यह सिस्टम घड़ी का उपयोग करता है), आपके द्वारा पास किए गए अतिरिक्त एन्ट्रापी को एक रैखिक congruent जनरेटर का उपयोग करके जोड़ा जाता है, जो क्रिप्टोग्राफिक रूप से सुरक्षित नहीं है। वास्तव में, इसका मतलब यह है कि कोई आपके सभी एपीआई कुंजी का अनुमान लगा सकता है, भले ही उन्हें आपके सर्वर घड़ी की कीमत का अंदाजा न हो। अंत में, mt_rand (), जो आप अतिरिक्त एंट्रोपी के रूप में उपयोग करते हैं, वह सुरक्षित रैंडम नंबर जनरेटर भी नहीं है।