Exemples et idées d'analyse du code de vérification php

*文
Libérer: 2023-03-18 18:30:01
original
1618 Les gens l'ont consulté

Cet article présente principalement les idées de production et les méthodes d'implémentation du code de vérification PHP. Nous ne pouvons pas implémenter aveuglément PHP pour générer des codes de vérification. Nous devons comprendre les principes de base des codes de vérification PHP et vraiment maîtriser les méthodes d'implémentation des codes de vérification PHP. est nécessaire. Les amis peuvent s'y référer. J'espère que cela aide tout le monde.

1. Idées de production

Étant donné que les codes d'enregistrement sont souvent utilisés lors de l'enregistrement pour empêcher l'enregistrement malveillant des machines, je publie ici une image de base qui génère un code de vérification d'image png , analyse d'idée simple :

1. Générez une image png
2. Définissez la couleur d'arrière-plan de l'image
3. Définissez la couleur et le style de la police
4. Code de vérification aléatoire avec des chiffres
5. Ajustez l'angle de rotation et la position de chaque caractère généré et dessinez-le sur l'image png
6. Ajoutez des lignes de bruit et d'interférence pour empêcher les machines d'enregistrement d'analyser l'image originale pour un enregistrement malveillant
🎜> 7. Sortir l'image
8. Libérer la mémoire occupée par l'image

2. Méthode d'implémentation

fichier authcode.php


<?php
    session_start ();
    header ( &#39;Content-type: image/png&#39; );
    //创建图片
    $im = imagecreate($x=130,$y=45 );
    $bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
    $fontColor = imageColorAllocate ( $im, 255, 255, 255 );  //字体颜色
    $fontstyle = &#39;rock.ttf&#39;;          //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
    //产生随机字符
    for($i = 0; $i < 4; $i ++) {
        $randAsciiNumArray     = array (rand(48,57),rand(65,90));
        $randAsciiNum         = $randAsciiNumArray [rand ( 0, 1 )];
        $randStr             = chr ( $randAsciiNum );
        imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
        $authcode            .= $randStr; 
    }
    $_SESSION[&#39;authcode&#39;]    = $randFourStr;//用户和用户输入的验证码做比较
    //干扰线
    for ($i=0;$i<8;$i++){
        $lineColor    = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
        imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
    }
    //干扰点
    for ($i=0;$i<250;$i++){
        imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
    }
    imagepng($im);
    imagedestroy($im);        
?>
Copier après la connexion


Rendu :

Recommandations associées :

Comment utiliser php pour envoyer des codes de vérification par SMS

Laravel's bibliothèque de codes de vérification

Comment résoudre le problème selon lequel l'image du code de vérification n'apparaît pas dans ecshop

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal