php驗證碼zhuc php實現驗證碼製作

2021-10-13 02:18:47 字數 2159 閱讀 1805

php實現驗證碼製作

首先,看一張圖了解驗證碼生成的過程。

(1)生成驗證碼底圖

(2)驗證碼內容

(3)生成驗證碼

(4)對比校驗

驗證碼實現的核心技術分析

(a)底圖的`實現,並新增干擾元素

(b)生成驗證內容

(c)驗證內容儲存在服務端

(d)驗證內容的校驗

下面看**實現的過程

這段** 實現了產生 隨機數字,隨機數字+字母驗證碼

session_start();

$image = imagecreatetruecolor(100, 30);

//imagecreatetruecolor() 返回乙個影象識別符號,代表了一幅大小為 x_size 和 y_size 的黑色影象。

$bgcolor = imagecolorallocate($image, 255, 255, 255);

// imagecolorallocate — 為一幅影象分配顏色

imagefill($image,0,0,$bgcolor);

/*   生成字母驗證碼

for($i=0;$i<4;$i++)

$fontsize = 6;

// $fontcolor = imagecolorallocate($image, 0, 0, 0);

$fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

$fontcontent =rand(0,9);

$x = ($i*100/4) + rand(5,10);

$y = rand(5,10);

// imagestring — 水平地畫一行字串

imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);

// 生成字母加數字的隨機驗證碼

$captcha_code = "";

for($i=0;$i<4;++$i)

$fontsize = 6;

$fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

$data = "abcdefghijklmnopqrstuvwxtz123456789";

$fontcontent = substr($data,rand(0,strlen($data)),1);

$captcha_code.=$fontcontent;

$x = ($i*100/4) + rand(5,10);

$y = rand(5,10);

imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);

$_session['authcode']=$captcha_code;

//  給驗證碼新增點干擾項

for($i=0;$i<200;$i++)

$pointcolor = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200));

imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);

// bool imagesetpixel ( resource $image , int $x , int $y , int $color );

// imagesetpixel() 在 image 影象中用 color 顏色在 x,y 座標(影象左上角為 0,0)上畫乙個點。

// 增加線的干擾

for($i=0;$i<3;++$i)

$linecolor = imagecolorallocate($image, rand(80,220), rand(80,220), rand(80,220));

imageline($image, rand(1,99), rand(1,29), rand(1,99), rand(1,29), $linecolor);

header("content-type: image/png");

imagepng($image);

imagedestroy($image);

PHP實現驗證碼

目前,不少 為了防止使用者利用機械人自動註冊 登入 灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,裡加上一些干擾象素 防止 ocr 由使用者肉眼識別其中的驗證碼資訊,輸入表單提交 驗證,驗證成功後才能使用某項功能。我們這裡展示了如何編寫 php程式實現驗證碼功能 一...

php實現驗證碼

繪製驗證碼 num 5 str getcode num,2 建立畫布 width num 20 height 30 im imagecreatetruecolor width,height color 0 imagecolorallocate im,100,18,199 color 1 imagec...

PHP實現驗證碼

建立並設定大小 image imagecreatetruecolor 100,30 設定驗證碼顏色 方法 imagecolorallocate 物件,int red,int green,int blue bgcolor imagecolorallocate image,190,234,239 設定為...