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

Bagaimanakah Saya Boleh Menjana Rentetan Alfanumerik Selamat untuk Pautan Pengesahan dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-23 00:54:15642semak imbas

How Can I Generate Secure Alphanumeric Strings for Verification Links in PHP?

Jana Rentetan Abjad Angka Unik untuk Pautan Pengesahan

Mencipta rentetan unik rawak yang mengandungi kedua-dua huruf dan nombor ialah kaedah selamat untuk pautan pengesahan dalam proses penciptaan akaun. Berikut ialah dua fungsi PHP yang boleh digunakan untuk tujuan ini:

PHP 7 (Disyorkan)

Pustaka standard PHP 7 termasuk fungsi random_bytes(), yang menjana bait pseudo-rawak yang selamat secara kriptografi.

$bytes = random_bytes(20);
echo bin2hex($bytes);

PHP 5 (Lapuk)

Untuk PHP 5, disyorkan untuk menggunakan openssl_random_pseudo_bytes() untuk menjana token selamat:

echo bin2hex(openssl_random_pseudo_bytes(20));

Pertimbangan Tambahan

Untuk meningkatkan keselamatan dan mengehadkan tekaan token, anda dinasihatkan untuk cipta fungsi tersuai yang memenuhi keperluan khusus. Berikut ialah pelaksanaan komprehensif yang menangani keperluan tersebut:

function crypto_rand_secure($min, $max) {
    // Calculate and filter random bits
    $bytes = (int) (($max - $min) / 8) + 1;
    $bits = (int) log($max - $min, 2) + 1;
    $filter = (int) (1  $range);

    return $min + $rnd;
}

function getToken($length) {
    // Define character set and calculate maximum length
    $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    $max = strlen($codeAlphabet); // edited

    // Generate token of specified length
    $token = "";
    for ($i = 0; $i <p>Fungsi ini menyediakan alternatif selamat kepada rand() dan mt_rand, memastikan token yang dijana sukar diteka dan memenuhi kriteria yang dikehendaki.</p>

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Rentetan Alfanumerik Selamat untuk Pautan Pengesahan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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