Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjana Rentetan Alfanumerik Rawak Selamat dalam PHP?
Menjana Rentetan Abjad Angka Unik Secara Rawak
Dalam pelbagai aplikasi, seperti pautan pengesahan akaun, adalah penting untuk menjana rentetan unik dan rawak yang terdiri daripada nombor dan huruf. Begini cara anda boleh mencapai ini dalam PHP:
PHP 7
PHP 7 memperkenalkan fungsi random_bytes($length) untuk menyediakan bait pseudo-rawak yang selamat secara kriptografi. Contoh:
$bytes = random_bytes(20); var_dump(bin2hex($bytes));
Ini akan menghasilkan output seperti:
string(40) "5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9"
PHP 5 (Lapuk)
Untuk PHP 5, ia adalah disyorkan untuk menggunakan openssl_random_pseudo_bytes() sebaliknya, yang menjana token selamat dari segi kriptografi. Penyelesaian mudah:
bin2hex(openssl_random_pseudo_bytes($bytes))
Pendekatan Lebih Selamat
Untuk meningkatkan keselamatan, fungsi berikut boleh menjana rentetan abjad angka unik secara rawak dalam julat panjang yang ditentukan:
function getToken($length) { $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; $max = strlen($codeAlphabet); // edited for ($i=0; $i < $length; $i++) { $token .= $codeAlphabet[crypto_rand_secure(0, $max-1)]; } return $token; }
Pendekatan ini menggabungkan crypto_rand_secure($min, $max) sebagai pengganti drop-in untuk rand() atau mt_rand(), menggunakan openssl_random_pseudo_bytes untuk menjamin rawak.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Rentetan Alfanumerik Rawak Selamat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!