Rumah pembangunan bahagian belakang tutorial php Kes pemprosesan imej PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan imej

Kes pemprosesan imej PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan imej

Aug 17, 2023 pm 12:09 PM
php Kod pengesahan Pemprosesan imej

Kes pemprosesan imej PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan imej

Kes pemprosesan imej PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan imej

Dengan perkembangan pesat Internet, kod pengesahan telah menjadi salah satu cara penting untuk melindungi keselamatan laman web. Kod pengesahan ialah kaedah pengesahan yang menggunakan teknologi pengecaman imej untuk menentukan sama ada pengguna adalah pengguna sebenar. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi kod pengesahan imej, dan disertakan dengan contoh kod.

  1. Pengenalan

Kod pengesahan ialah gambar yang mengandungi aksara rawak Pengguna perlu memasukkan aksara dalam gambar untuk lulus pengesahan. Proses utama melaksanakan kod pengesahan termasuk menjana aksara rawak, melukis aksara ke dalam gambar, menambah gangguan bunyi, dsb. PHP menyediakan perpustakaan GD untuk pemprosesan imej Kita boleh menggunakan perpustakaan GD untuk menghasilkan imej kod pengesahan.

  1. Jana fungsi kod pengesahan

Pertama, kita perlu mentakrifkan fungsi untuk menjana kod pengesahan. Berikut ialah pelaksanaan mudah:

function generateCaptcha($length = 4) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $captcha = '';
    
    for ($i = 0; $i < $length; $i++) {
        $captcha .= $characters[rand(0, strlen($characters) - 1)];
    }
    
    return $captcha;
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan set aksara yang mengandungi nombor dan huruf, dan kemudian memilih aksara secara rawak melalui gelung untuk menjana kod pengesahan.

  1. Fungsi untuk melukis gambar kod pengesahan

Seterusnya, kita perlu menulis fungsi untuk melukis aksara kod pengesahan yang dijana pada gambar. Berikut ialah contoh fungsi:

function drawCaptcha($captcha) {
    $imageWidth = 120;
    $imageHeight = 40;
    
    $image = imagecreatetruecolor($imageWidth, $imageHeight);
    $backgroundColor = imagecolorallocate($image, 255, 255, 255);
    imagefill($image, 0, 0, $backgroundColor);
    
    $textColor = imagecolorallocate($image, 0, 0, 0);
    
    $font = 'path/to/font.ttf'; // 替换为实际的字体文件路径
    
    $fontSize = 20;
    
    $textX = ($imageWidth - ($fontSize * strlen($captcha))) / 2;
    $textY = ($imageHeight - $fontSize) / 2;
    
    imagettftext($image, $fontSize, 0, $textX, $textY, $textColor, $font, $captcha);
    
    header("Content-Type: image/png");
    imagepng($image);
    imagedestroy($image);
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mencipta kanvas kosong dengan saiz yang ditentukan, dan kemudian menetapkan warna latar belakang kanvas kepada putih. Seterusnya, kami menentukan warna, fon, saiz dan parameter lain yang berkaitan bagi aksara kod pengesahan. Gunakan fungsi imagettftext untuk melukis aksara kod pengesahan pada kanvas dan mengeluarkannya sebagai imej format PNG. imagettftext函数将验证码字符绘制到画布上,并输出为PNG格式的图片。

  1. 添加噪点干扰

为了提高验证码的安全性,我们可以在验证码图片上添加一些噪点干扰。以下是一个示例函数:

function addNoise($image, $noisePercentage = 30) {
    $imageWidth = imagesx($image);
    $imageHeight = imagesy($image);
    
    $totalPixels = $imageWidth * $imageHeight;
    $noisePixels = $totalPixels * $noisePercentage / 100;
    
    for ($i = 0; $i < $noisePixels; $i++) {
        $x = rand(0, $imageWidth - 1);
        $y = rand(0, $imageHeight - 1);
        
        $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
        
        imagesetpixel($image, $x, $y, $color);
    }
    
    return $image;
}
Salin selepas log masuk

在上述代码中,我们通过循环来随机选择图片中的像素点,然后随机设定噪点的颜色并绘制到图片上。

  1. 将验证码用于网页

最后,我们可以将生成的验证码图片嵌入到网页中,供用户验证。以下是一个示例的HTML代码:

<form action="verify_captcha.php" method="post">
    <label for="captcha">验证码:</label>
    <input type="text" name="captcha" id="captcha" maxlength="4">
    <img src="/static/imghw/default1.png"  data-src="captcha.php"  class="lazy" alt="验证码">
    <button type="submit">提交</button>
</form>
Salin selepas log masuk

在上述代码中,我们通过<img alt="Kes pemprosesan imej PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan imej" >标签将验证码图片的URL指向生成验证码的PHP文件。用户输入验证码后,提交表单时,后台的verify_captcha.php

    Tambah gangguan hingar

    Untuk meningkatkan keselamatan kod pengesahan, kami boleh menambahkan sedikit gangguan hingar pada imej kod pengesahan. Berikut ialah contoh fungsi:

    rrreee

    Dalam kod di atas, kami secara rawak memilih piksel dalam imej melalui gelung, kemudian secara rawak menetapkan warna hingar dan menariknya ke imej.

      Gunakan kod pengesahan ke halaman web

      🎜🎜Akhir sekali, kami boleh membenamkan imej kod pengesahan yang dijana ke dalam halaman web untuk pengesahan pengguna. Berikut ialah contoh kod HTML: 🎜rrreee🎜Dalam kod di atas, kami menghalakan URL imej kod pengesahan ke fail PHP yang menjana kod pengesahan melalui teg <img alt="Kes pemprosesan imej PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan imej" >. Selepas pengguna memasukkan kod pengesahan dan menyerahkan borang, fail verify_captcha.php di latar belakang akan mengesahkan sama ada kod pengesahan yang dimasukkan oleh pengguna adalah betul. 🎜🎜Melalui langkah di atas, kami telah berjaya melaksanakan fungsi menjana dan mengesahkan kod pengesahan menggunakan PHP. Melalui kod pengesahan, kami boleh meningkatkan keselamatan tapak web dan mencegah serangan berniat jahat dan pendaftaran berniat jahat. 🎜🎜Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan perpustakaan GD PHP untuk menjana dan mengesahkan kod pengesahan imej. Dengan menjana aksara rawak, melukis aksara pada gambar, menambah gangguan bunyi dan langkah lain, kami boleh melaksanakan fungsi kod pengesahan yang mudah tetapi berkesan. Saya harap artikel ini boleh membantu pelaksanaan pemprosesan imej PHP dan kod pengesahan. 🎜🎜Rujukan: https://www.php.net/manual/en/book.image.php🎜

Atas ialah kandungan terperinci Kes pemprosesan imej PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

See all articles