Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menjana Rentetan Alfanumerik Rawak Selamat untuk Pautan Pengesahan dalam PHP?

Bagaimana untuk Menjana Rentetan Alfanumerik Rawak Selamat untuk Pautan Pengesahan dalam PHP?

Susan Sarandon
Lepaskan: 2024-12-22 21:47:18
asal
474 orang telah melayarinya

How to Generate Secure Random Alphanumeric Strings for Verification Links in PHP?

Menjana Rentetan Abjad Angka Unik untuk Pautan Pengesahan dalam PHP

Apabila mendaftar di tapak web, anda sering menerima e-mel yang mengandungi pautan untuk mengesahkan akaun anda. Pautan ini memerlukan rentetan rawak yang unik untuk memastikan keasliannya. Begini cara untuk menjana rentetan sedemikian dalam PHP.

Menggunakan Perpustakaan Standard PHP 7 (Disyorkan)

PHP 7 memperkenalkan fungsi random_bytes($length) untuk menjana pseudo selamat secara kriptografi -bait rawak.

$bytes = random_bytes(20);
var_dump(bin2hex($bytes));
Salin selepas log masuk

PHP 5 (Lapuk)

Untuk versi PHP yang lapuk, gunakan bin2hex(openssl_random_pseudo_bytes($bytes)), yang menjana rentetan abjad angka rawak dengan panjang = $bytes * 2.

Dipertingkatkan Secara Kriptografi Selamat Fungsi

Fungsi berikut memenuhi semua kriteria keselamatan:

function getToken($length)
{
    $token = "";
    $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    $max = strlen($codeAlphabet);

    for ($i = 0; $i < $length; $i++) {
        $token .= $codeAlphabet[crypto_rand_secure(0, $max - 1)];
    }

    return $token;
}
Salin selepas log masuk

crypto_rand_secure($min, $max) menggunakan openssl_random_pseudo_bytes untuk menjana nombor rawak antara $min dan $max. getToken($length) mencipta abjad tersuai dan menghasilkan rentetan panjang $length.

Kesimpulan

Menggunakan fungsi ini, anda boleh menjana rentetan rawak dan unik yang mantap untuk pelbagai tujuan berkaitan keselamatan, seperti pautan pengesahan dan token mendapatkan kata laluan.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Rentetan Alfanumerik Rawak Selamat untuk Pautan Pengesahan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan