यह आपको एक यादृच्छिक 8 वर्ण स्ट्रिंग देगा:
substr(str_pad(dechex(mt_rand()), 8, '0', STR_PAD_LEFT), -8);
यहां मिला:http://www.richardlord.net/blog/php-password- सुरक्षा
या यदि उपयोगकर्ता नाम फ़ील्ड अद्वितीय है तो आप इसका भी उपयोग कर सकते हैं:
substr(md5('username value'), 0, 8);
हालांकि यह बेहद असंभव है, विशेष रूप से एमडी 5 के लिए, न तो मामला एक अद्वितीय स्ट्रिंग की गारंटी देता है, इसलिए शायद मैं ऐसा कुछ करूंगा:
// Handle user registration or whatever...
function generatePID($sUsername) {
return substr(md5($sUsername), 0, 8);
}
$bUnique = false;
$iAttempts = 0;
while (!$bUnique && $iAttempts < 10) {
$aCheck = $oDB->findByPID(generatePID("username value")); // Query the database for a PID matching whats generated
if (!$aCheck) { // If nothing is found, exit the loop
$bUnique = true;
} else {
$iAttempts++;
}
}
// Save PID and such...
... जो संभवत:केवल 1 'चेक' क्वेरी देगा, शायद 2 अद्वितीय मामलों में, और एक अद्वितीय स्ट्रिंग सुनिश्चित करेगा।