ホームページ  >  記事  >  バックエンド開発  >  PHP 実装をランダムに妨害する検証コードを生成する

PHP 実装をランダムに妨害する検証コードを生成する

WBOY
WBOYオリジナル
2016-07-25 08:46:03969ブラウズ
  1. session_start ();
  2. header ( 'Content-type: image/png' );
  3. //画像を作成
  4. $im = imagecreate($x=130,$y=45 );
  5. $bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //imagecolorallocate() への最初の呼び出しは、パレットベースの画像の背景色を塗りつぶします
  6. $fontColor = imageColorAllocate ( $im, 255, 255, 255); //フォントの色
  7. $fontstyle = 'rock.ttf'; //フォントのスタイルは、c:windowsFonts フォルダーにあり、authcode に入れます。ここで他のフォント スタイルを置き換えることができます
  8. //ランダムな文字を生成します
  9. for($i = 0; $i < 4; $i ++) {
  10. $randAsciiNumArray = array (rand(48,57 ),rand(65, 90));
  11. $randAsciiNum = $randAsciiNumArray [rand ( 0, 1 )];
  12. $randStr = chr ( $randAsciiNum );
  13. imagettftext($im,30,rand(0,20)- rand(0,25) ,5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
  14. $authcode .= $randStr;
  15. }
  16. $_SESSION['authcode'] = $randFourStr;//比較ユーザーが入力した確認コードを持つユーザー
  17. //干渉線
  18. for ($i=0;$i<8;$i++){
  19. $lineColor = imagecolorallocate($im,rand(0,255) ,rand(0,255) ),rand(0,255));
  20. imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
  21. }
  22. //干渉クリック
  23. for ( $i=0;$i<250;$i++){
  24. imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
  25. }
  26. imagepng($im);
  27. imagedestroy($im);
  28. ?>
コードをコピー

確認コード、php


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。