用PHP實現驗證碼功能

2021-03-31 23:26:03 字數 2385 閱讀 9589

目前,不少**為了防止使用者利用機械人自動註冊、登入、灌水,都採用了

驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,

裡加上一些干擾象素(防止ocr),由使用者肉眼識別其中的驗證碼資訊,輸

入表單提交**驗證,驗證成功後才能使用某項功能。

我們這裡展示了如何編寫php程式實現驗證碼功能:

**一: 

<?php

/* *   filename:    authpage.php

*   author:   hutuworm

*   date:   2003-04-28

*   @copyleft    hutuworm.

*/ srand((double)microtime()*1000000);

//驗證使用者輸入是否和驗證碼一致

//生成新的四位整數驗證碼

while(($authnum=rand()%10000)<1000); 

?>

**二:

<?php

/* *   filename:    authimg.php

*   author:   hutuworm

*   date:   2003-04-28

*   @copyleft    hutuworm.

*/ //生成驗證碼

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

srand((double)microtime()*1000000);

$im = imagecreate(58,28);

$black = imagecolorallocate($im, 0,0,0);

$white = imagecolorallocate($im, 255,255,255);

$gray = imagecolorallocate($im, 200,200,200);

imagefill($im,68,30,$gray);

//將四位整數驗證碼繪入

for($i=0;$i<50;$i++)   //加入干擾象素

imagepng($im);

imagedestroy($im);

?>

本文程式在apache 2.0.45 + php 4.3.1環境下執行通過。

上文只是對驗證碼功能的乙個簡單實現,並沒有考慮商用安全性問題。如果要增強安全性,將此功能投入商業應用,則可以通過以下幾個步驟實現:

1. 啟用session。

2. authnum在authimg.php中生成,並計算md5sum,存入session。

3. authpage.php將authinput計算md5sum後,與session中的authnum(md5sum)對比得出驗證結果。

本站注:作者使用了簡單的**實現了很酷的功能。不過在新增干擾畫素時的效果不是太好,大家可以看一下雨聲論壇登入時的效驗碼(http://ror.**/perl/ut/user_login.cgi),偶把第二段**稍改了一下,生成了與其類似的效果。

修改後的**如下:

<?php

/* *   filename: authimg.php

*   author:   hutuworm

*   date:     2003-04-28

*   @copyleft hutuworm.

*/ //生成驗證碼

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

srand((double)microtime()*1000000);

$im = imagecreate(62,20);

$black = imagecolorallocate($im, 0,0,0);

$white = imagecolorallocate($im, 255,255,255);

$gray = imagecolorallocate($im, 200,200,200);

imagefill($im,68,30,$gray);

while(($authnum=rand()%100000)<10000);

//將四位整數驗證碼繪入

imagestring($im, 5, 10, 3, $authnum, $black);

for($i=0;$i<200;$i++)   //加入干擾象素

imagepng($im);

imagedestroy($im);

?>

用PHP實現驗證碼功能

我們這裡展示了如何編寫php程式實現驗證碼功能 一 filename authpage.php author hutuworm date 2003 04 28 copyleft hutuworm.org srand double microtime 1000000 驗證使用者輸入是否和驗證碼一致 生...

用PHP實現驗證碼功能

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

用PHP實現驗證碼功能 一

經常接觸網際網路的童鞋都知道,日前不少 為了防止使用者利用機械人自動註冊 登入 灌水,都採用了 驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,入表單提交 驗證,驗證成功後才能使用某項功能。我們這裡展示了如何編寫php程式實現驗證碼功能 一 filename authpage.ph...