Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menjana Rentetan Alfanumerik Rawak Selamat dalam PHP?

Bagaimanakah Saya Boleh Menjana Rentetan Alfanumerik Rawak Selamat dalam PHP?

DDD
Lepaskan: 2025-01-01 06:15:11
asal
800 orang telah melayarinya

How Can I Generate Secure Random Alphanumeric Strings in 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));
Salin selepas log masuk

Ini akan menghasilkan output seperti:

string(40) "5fe69c95ed70a9869d9f9af7d8400a6673bb9ce9"
Salin selepas log masuk

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))
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan