ホームページ  >  記事  >  バックエンド開発  >  PHP 簡易検証コード生成例_PHP チュートリアル

PHP 簡易検証コード生成例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:47:411031ブラウズ

検証コードを使用すると、一部のユーザーがパスワードを推測するために繰り返し送信したり、総当たりツールを使用してパスワードを推測したりすることができなくなります。以下にセッションベースの検証コード プログラムを示します。


Web サイトにログインしたり登録したりする場合、他人が機械的な暴力を使って登録やログインを行うことを防ぐために、確認コードがよく使用されます。確認コードを追加すると、Web サイトがある程度安全になります。次に、比較的簡単な確認コードの生成を示します。 、セッションの割り当ても提供します。

コードは次のとおりです コードをコピー

session_start();
header(“コンテンツタイプ: image/png”);
//トゥルーカラーのホワイトペーパーを作成します
$im = @imagecreatetruecolor(50, 20) または die("画像の作成に失敗しました");
//背景色を取得します
$background_color = imagecolorallocate($im, 255, 255, 255);
//背景色を塗りつぶします(これは石油バレルに似ています)
imagefill($im,0,0,$background_color);
//枠線の色を取得します
$border_color = imagecolorallocate($im,200,200,200);
// 境界線の色 200,200,200 で長方形を描画します
imagerectangle($im,0,0,49,19,$border_color);

//背景を 1 行ずつ表示します。全画面表示の場合は 1 または 0 を使用します
for($i=2;$i //ランダムな光の色を取得します
$line_color = imagecolorallocate($im,rand(200,255),rand(200,255),rand(200,255));
//線を描く
イメージライン($im,2,$i,47,$i,$line_color);
}

//フォントサイズを設定する
$font_size=12;

//印刷テキストを設定します
$Str[0] = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
$Str[1] = "abcdefghijklmnopqrstuvwxyz";
$Str[2] = “01234567891234567890123456″;

//最初のランダムなテキストを取得します
$imstr[0]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[0]["x"] = ランド(2,5);
$imstr[0]["y"] = ランド(1,4);

//2 番目のランダムなテキストを取得します
$imstr[1]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[1]["x"] = $imstr[0]["x"]+$font_size-1+rand(0,1);
$imstr[1]["y"] = rand(1,3);

//3番目のランダムなテキストを取得します
$imstr[2]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[2]["x"] = $imstr[1]["x"]+$font_size-1+rand(0,1);
$imstr[2]["y"] = rand(1,4);

//4 番目のランダムなテキストを取得します
$imstr[3]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[3]["x"] = $imstr[2]["x"]+$font_size-1+rand(0,1);
$imstr[3]["y"] = rand(1,3);

//表示された配列をセッションに割り当てます
$_SESSION['CODE'] = $imstr[0]["s"].$imstr[1]["s"].$imstr[2]["s"].$imstr[3]["s" ];

//ランダムな文字列を書き込む
for($i=0;$i $text_color = imagecolorallocate($im,rand(50,180),rand(50,180),rand(50,180));
imagechar($im,$font_size,$imstr[$i]["x"],$imstr[$i]["y"],$imstr[$i]["s"],$text_color);
}
//画像を表示する
imagepng($im);
//写真を破棄します
imagedestroy($im);
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632840.html技術記事確認コードを使用すると、一部のユーザーがパスワードを推測するために繰り返し送信したり、ブルート フォース ツールを使用してパスワードを推測したりすることができなくなります。以下に基づいた方法を示します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。