شرح صفوف ومحتوى الفقرة
استخدم دائماً دوال التوليد العشوائي الآمن تشفيرياً (CSPRNG) في PHP وهي random_int($min, $max) وrandom_bytes($length) لتوليد رموز التحقق والتوكنات الأمنية.
- تولّد
random_int(100000, 999999)عدداً صحيحاً من 6 أرقام غير قابل للتوقع وآمن تشفيرياً. - تولّد
bin2hex(random_bytes(8))ثمانية بايتات عشوائية آمنة وتحولها إلى سلسلة ست عشرية طولها 16 حرفاً. - الدوال القديمة
rand()وmt_rand()قابلة للتنبؤ حسابياً ولا يجوز استخدامها أبداً في رموز التحقق أو التوكنات.
تضمن random_int(100000, 999999) رقماً صحيحاً شاملاً للحدين، وتضاعف bin2hex(random_bytes(8)) عدد البايتات الثمانية لتنتج 16 حرفاً ست عشرياً.
PHP
<?php
$otpCode = random_int(100000, 999999);
$tokenHex = bin2hex(random_bytes(8));
var_dump($otpCode >= 100000 && $otpCode <= 999999);
echo "Token length: " . strlen($tokenHex) . "\n";