PHP を使用して検証コードとグラフィック認識関数を実装する方法
検証コード (キャプチャ) は、ユーザーが本物であることを確認するために使用される一般的なオンライン検証メカニズムです。自動化されたスクリプトやマルウェアではありません。認証コードはWebサイトの登録時やログイン時、パスワードリセット時などに頻繁に使用されますが、認証コードを識別することでロボットによる悪意のある攻撃やスパムメッセージの送信を防ぐことができます。この記事では、PHPを使用して検証コードとグラフィック認識機能を実装する方法を紹介します。
- 検証コードの生成
まず、ユーザーが識別できるように検証コード イメージを生成する必要があります。以下は、数字と文字で構成される確認コードを生成する単純な PHP 関数です。
1 2 3 4 5 6 7 8 9 10 11 12 | <?php
session_start();
function generateCaptcha( $length = 4) {
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' ;
$captcha = '' ;
for ( $i = 0; $i < $length ; $i ++) {
$captcha .= $chars [rand(0, strlen ( $chars ) - 1)];
}
$_SESSION [ 'captcha' ] = $captcha ;
return $captcha ;
}
|
ログイン後にコピー
- 確認コード画像の表示
確認コードを生成した後、ユーザーが入力できるように Web ページに表示する必要があります。以下は、キャプチャ画像を生成してブラウザに表示する単純な PHP スクリプトです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php
header( "Content-type: image/png" );
$captcha = generateCaptcha();
$width = 80;
$height = 40;
$image = imagecreate( $width , $height );
$background = imagecolorallocate( $image , 255, 255, 255);
$textColor = imagecolorallocate( $image , 0, 0, 0);
imagestring( $image , 5, 10, 12, $captcha , $textColor );
imagepng( $image );
imagedestroy( $image );
?>
|
ログイン後にコピー
- 入力された確認コードを確認してください
ユーザーはブラウザに確認コードの画像が表示されたら、操作を続行するには確認コードを入力する必要があります。以下は、ユーザーが入力した確認コードが正しいことを確認するための簡単な PHP 関数です。
1 2 3 4 5 6 7 8 9 10 11 | <?php
session_start();
function validateCaptcha( $input ) {
if (isset( $_SESSION [ 'captcha' ])) {
$captcha = $_SESSION [ 'captcha' ];
unset( $_SESSION [ 'captcha' ]);
return strtolower ( $input ) === strtolower ( $captcha );
}
return false;
}
|
ログイン後にコピー
- グラフィック認識機能
検証コード画像には、自動認識を妨げるために複雑な歪み、干渉、その他の効果が使用される場合があります。この場合、パターン認識技術を使用して検証コードを自動的に識別できます。以下は、CAPTCHA 画像を認識する簡単な PHP 関数です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php
function recognizeCaptcha( $imagePath ) {
$image = imagecreatefrompng( $imagePath );
$width = imagesx( $image );
$height = imagesy( $image );
$captcha = '' ;
for ( $i = 0; $i < $width ; $i ++) {
$color = imagecolorat( $image , $i , $height / 2);
$r = ( $color >> 16) & 0xFF;
$g = ( $color >> 8) & 0xFF;
$b = $color & 0xFF;
$brightness = ( $r + $g + $b ) / (3 * 255);
$captcha .= ( $brightness < 0.5) ? '1' : '0' ;
}
imagedestroy( $image );
return $captcha ;
}
|
ログイン後にコピー
上記は、PHP を使用して検証コードとグラフィック認識機能を実装する簡単な例です。 CAPTCHA コードの生成、CAPTCHA 画像の表示、ユーザー入力の検証、パターン認識テクノロジーの使用により、当社 Web サイトのセキュリティとユーザー エクスペリエンスを向上させることができます。もちろん、実際のアプリケーションには、より複雑な検証コードやパターン認識アルゴリズムが含まれる場合があり、特定の状況に応じて調整および最適化する必要があります。
以上がPHP を使用して検証コードとグラフィック認識機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。