Maison  >  Article  >  développement back-end  >  Étapes détaillées pour générer des images de code de vérification irrégulières à l'aide de la bibliothèque PHP et GD

Étapes détaillées pour générer des images de code de vérification irrégulières à l'aide de la bibliothèque PHP et GD

WBOY
WBOYoriginal
2023-07-12 19:13:33834parcourir

Étapes détaillées pour générer des images de code de vérification irrégulières à l'aide des bibliothèques PHP et GD

1. Introduction
Captcha (CAPTCHA) est une technologie utilisée pour distinguer les machines et les humains. Il est souvent utilisé pour empêcher les programmes malveillants d'automatiser les attaques de sites Web, le spam et les enregistrements malveillants. La génération d'images de code de vérification irrégulières peut augmenter la complexité du code de vérification et améliorer la sécurité. Cet article présentera les étapes détaillées sur la façon d'utiliser la bibliothèque PHP et GD pour générer des images de code de vérification irrégulières et fournira des exemples de code pertinents.

2. Préparation

  1. Assurez-vous que PHP est installé et que la bibliothèque GD est activée. La bibliothèque GD est une bibliothèque d'extension pour le traitement des images. Elle peut être activée en activant la bibliothèque gd dans le fichier php.ini.
  2. Créez un nouveau fichier PHP nommé captcha.php.

3. Générer des images de code de vérification
Voici les étapes détaillées pour générer des images de code de vérification irrégulières :

  1. Créez une image vierge et définissez la couleur d'arrière-plan.

    $imageWidth = 150;
    $imageHeight = 50;
    $image = imagecreatetruecolor($imageWidth, $imageHeight);
    $backgroundColor = imagecolorallocate($image, 255, 255, 255);
    imagefill($image, 0, 0, $backgroundColor);
  2. Générez une chaîne de code de vérification aléatoire.

    $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $length = 6;
    $code = '';
    for ($i = 0; $i < $length; $i++) {
     $code .= $characters[rand(0, strlen($characters) - 1)];
    }
  3. Dessinez la chaîne du code de vérification sur l'image.

    $font = 'arial.ttf';
    $fontSize = 20;
    $fontColor = imagecolorallocate($image, 0, 0, 0);
    imagettftext($image, $fontSize, 0, 10, 30, $fontColor, $font, $code);
  4. Ajoutez des lignes aléatoires distrayantes.

    $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);
    }
  5. Ajoutez du bruit aléatoire.

    $pixelColor = imagecolorallocate($image, 0, 0, 0);
    for ($i = 0; $i < 50; $i++) {
     imagesetpixel($image, rand(0, $imageWidth), rand(0, $imageHeight), $pixelColor);
    }
  6. Produisez des images et détruisez les ressources d'images.

    header('Content-Type: image/png');
    imagepng($image);
    imagedestroy($image);

4. Utilisation front-end
Utilisez la balise img en HTML pour afficher l'image du code de vérification sur la page front-end.

<img src="captcha.php" alt="验证码">

5. Résumé
Cet article détaille les étapes pour générer des images de code de vérification irrégulières à l'aide des bibliothèques PHP et GD, et fournit des exemples de code correspondants. La complexité et la sécurité du code de vérification peuvent être augmentées grâce à des techniques telles que la personnalisation des couleurs d'arrière-plan, des chaînes de code de vérification, des lignes d'interférence et des points de bruit. L'image du code de vérification générée à l'aide de cette méthode peut empêcher efficacement les robots et les attaques malveillantes. J'espère que cet article pourra aider les lecteurs à mieux comprendre comment générer des images de code de vérification irrégulières et les appliquer à des projets réels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn