Rumah >pembangunan bahagian belakang >tutorial php >Langkah terperinci untuk menjana imej kod pengesahan yang tidak teratur menggunakan perpustakaan PHP dan GD
Langkah terperinci untuk menghasilkan imej kod pengesahan yang tidak teratur menggunakan perpustakaan PHP dan GD
1 Pengenalan
Captcha (CAPTCHA) ialah teknologi yang digunakan untuk membezakan mesin dan manusia. Ia sering digunakan untuk menghalang program berniat jahat daripada mengautomasikan serangan tapak web, spam dan pendaftaran berniat jahat. Menjana imej kod pengesahan yang tidak teratur boleh meningkatkan kerumitan kod pengesahan dan meningkatkan keselamatan. Artikel ini akan memperkenalkan langkah terperinci tentang cara menggunakan pustaka PHP dan GD untuk menjana imej kod pengesahan yang tidak teratur dan memberikan contoh kod yang berkaitan.
2. Persediaan
3. Hasilkan imej kod pengesahan
Berikut ialah langkah terperinci untuk menjana imej kod pengesahan yang tidak teratur:
Buat imej kosong dan tetapkan warna latar belakang.
$imageWidth = 150; $imageHeight = 50; $image = imagecreatetruecolor($imageWidth, $imageHeight); $backgroundColor = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $backgroundColor);
Jana rentetan kod pengesahan rawak.
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $length = 6; $code = ''; for ($i = 0; $i < $length; $i++) { $code .= $characters[rand(0, strlen($characters) - 1)]; }
Lukis rentetan kod pengesahan pada gambar.
$font = 'arial.ttf'; $fontSize = 20; $fontColor = imagecolorallocate($image, 0, 0, 0); imagettftext($image, $fontSize, 0, 10, 30, $fontColor, $font, $code);
Tambahkan garisan yang mengganggu secara rawak.
$lineColor = imagecolorallocate($image, 128, 128, 128); for ($i = 0; $i < 5; $i++) { imageline($image, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $lineColor); }
Tambah bunyi rawak.
$pixelColor = imagecolorallocate($image, 0, 0, 0); for ($i = 0; $i < 50; $i++) { imagesetpixel($image, rand(0, $imageWidth), rand(0, $imageHeight), $pixelColor); }
Keluarkan imej dan musnahkan sumber imej.
header('Content-Type: image/png'); imagepng($image); imagedestroy($image);
4. Penggunaan bahagian hadapan
Gunakan teg img dalam HTML untuk memaparkan imej kod pengesahan pada halaman hujung hadapan.
<img src="captcha.php" alt="验证码">
5. Ringkasan
Artikel ini memperincikan langkah untuk menjana imej kod pengesahan yang tidak teratur menggunakan perpustakaan PHP dan GD, dan menyediakan contoh kod yang sepadan. Kerumitan dan keselamatan kod pengesahan boleh ditingkatkan melalui teknik seperti menyesuaikan warna latar belakang, rentetan kod pengesahan, garisan gangguan dan titik hingar. Imej kod pengesahan yang dijana menggunakan kaedah ini boleh menghalang robot dan serangan berniat jahat dengan berkesan. Saya harap artikel ini dapat membantu pembaca memahami dengan lebih baik cara menjana imej kod pengesahan yang tidak teratur dan menggunakannya pada projek sebenar.
Atas ialah kandungan terperinci Langkah terperinci untuk menjana imej kod pengesahan yang tidak teratur menggunakan perpustakaan PHP dan GD. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!