用PHP實現驗證碼功能

2022-04-09 04:10:52 字數 2339 閱讀 9233

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

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

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

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

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

**一: 

<?php  

/* *   filename:    authpage.php 

*   author:   hutuworm 

*   date:   2003-04-28 

*   @copyleft    hutuworm.org 

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

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

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

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

?> 

**二: 

<?php

/* *   filename:    authimg.php 

*   author:   hutuworm 

*   date:   2003-04-28 

*   @copyleft    hutuworm.org 

*///生成驗證碼 

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)對比得出驗證結果。

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

修改後的**如下:

<?php  

/*  *   filename: authimg.php 

*   author:   hutuworm 

*   date:     2003-04-28 

*   @copyleft hutuworm.org 

*/ //生成驗證碼 

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...