انتقل إلى محتوى الدرس

Secure Random Numbers with random_int توليد الأرقام العشوائية التشفيرية بـ random_int

تحكم في أوضاع تقريب الكسور بـ round وceil وfloor، واحسب القسمة الصحيحة بـ intdiv وfmod، وولّد أرقاماً عشوائية آمنة بـ random_int.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

استخدم دائماً دوال التوليد العشوائي الآمن تشفيرياً (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";