Maintenant, de plus en plus de sites Web commencent à utiliser des codes de vérification de caractères chinois, ce qui augmente non seulement l'intimité de nos gens, mais augmente également la difficulté de déchiffrage automatique. Ici, je vais l'expliquer simplement et grossièrement.
Créer un canevas d'arrière-plan
$image = imagecreatetruecolor(200, 60); $background = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $background);
Dessiner des points d'interférence
for ($i=0; $i < 300; $i++) { $pixColor = imagecolorallocate($image, rand(150, 240), rand(150, 240), rand(150, 240)); $pixX = rand(10, 190); $pixY = rand(5, 55); imagesetpixel($image, $pixX, $pixY, $pixColor); }
Dessiner des lignes d'interférence
//4条水平线 for ($i=0; $i < 5; $i++) { $lineColor = imagecolorallocate($image, rand(50, 150), rand(50, 150), rand(50, 150)); $lineX1 = 0; $lineX2 = 300; $lineY1 = ($i + 1) * 12; $lineY2 = ($i + 1) * 12; imageline($image, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor); } //10条垂直线 for ($i=0; $i < 30; $i++) { $lineColor = imagecolorallocate($image, rand(50, 150), rand(50, 150), rand(50, 150)); $lineX1 = ($i + 1) * 10; $lineX2 = ($i + 1) * 10; $lineY1 = 0; $lineY2 = 60; imageline($image, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor); }
Dessinez des caractères chinois
$text = array('栀', '子', '花', '开'); for ($i=0; $i < 4; $i++) { $textColor = imagecolorallocate($image, rand(20, 100), rand(20, 100), rand(20, 100)); $textX = $i * 50 + 10; $textY = rand(40, 60); imagettftext($image, 30, rand(20, 50), $textX, $textY, $textColor, "/Library/Fonts/华文仿宋.ttf", $text[$i]); }
Notez ici que le fichier de police doit prendre en charge le chinois
l'encodage doit utiliser utf-8, vous souvenez-vous de convertir le chinois gbk ? [La fonction iconv peut vous aider]
Image de sortie
header("Content-Type:image/png"); imagepng($image);
Détruire les ressources
imagedestroy($image);
Après un processus difficile, faites-le , le code de vérification chinois sera affiché. Bien entendu, lorsqu'un site Web est utilisé, il y aura une graine de bibliothèque de caractères chinois, à partir de laquelle un nombre spécifique de caractères chinois sont sélectionnés et affichés au hasard, et finalement enregistrés dans la session pour vérification.
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!