PHP Web サイト開発では、検証コードは悪意のある送信からフォームを効果的に保護できますが、算術検証コードや漢字検証コードを使用せず、単純なアルファベットまたは数字の検証コードのみを使用する場合、そのような検証コード スキームは実際には役に立ちません。安全ですか?
単純な数字や文字の検証コードは解読されやすいことは誰もが知っていますが、算数の検証コードや漢字の検証コードは解読されにくいため、検証コードを使用する場合は算数の検証コードまたは漢字の検証コードを使用することをお勧めします。コード。
1. 計算検証コード:
session_start();
header("コンテンツタイプ: image/png");
$num1 = mt_rand(0,9);//最初の桁
$num2 = mt_rand(1,9);//2 桁目
$type_str = "+-*";//メソッド文字列コレクション
$type = substr($type_str,rand(0,2),1);//ランダムメソッド
$change = mt_rand(1,3);
if($change==1){
$code = "$num1$type$num2=?";
$result = "$verifyCode=$num1$type$num2;";
eval($result);
$_SESSION['authnum_session'] = $verifyCode
}elseif($change==2){
$result = "$verifyCode=$num1$type$num2;";
eval($result);
$code = $num1.$type."_=".$verifyCode;
$_SESSION['authnum_session'] = $num2;
}elseif($change==3){
$result = "$verifyCode=$num1$type$num2;";
eval($result);
$code = "_".$type.$num2."=".$verifyCode;
$_SESSION['authnum_session'] = $num1;
}
$im = imagecreate(68,28);
$black = imagecolorallocate($im, 0,0,0);
$white = imagecolorallocate($im, 255,255,255);
$gray = imagecolorallocate($im, 200,200,200);
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im,0,0,$white);
画像文字列($im, 5, 10, 8, $code, $black);
for($i=0;$i
imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $black);
imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $red);
imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $gray);
}
imagepng($im);
imagedestroy($im);
?>
2. 漢字認証コード:
コードは次のとおりです:
session_start();
$ch_str="まず第一に、この国には、学生を異なる年齢に分けるために国産製品を使用する必要がある多くの人々が不和の中で存在しているということです。ファン・ジンの同僚たちは、革命後、インタビューで次のように述べています。多くの子供たちがソーシャルネットワークに参加し、質の高い長期的な党の勢力図が達成されました。反セクシュアリティと抗体の協力のロードマップは、現在の状況から新しい議論の内容を変えます。対応する形式、思考、思考、実践などの2つの才能、重要なポイントの変更、思考の強調、原因の内部除去など、毎日の利益段階は、気のカルマのグループ全体の圧力によって決まります。 、果物の期間、各ベースまたは毎月の毛のレベル、その後の比較は、それが最も外部的であり、森の5つの解釈を見ないことを示しています、ただし、米グループの頭は4つの馬の認識しか知りません。この記事は比較的文法的で公共的であり、受け入れ席の流入につながり、地区査察活動の構築に言及するために問題を設定し、習近平の一般的な多くの教育的決定が行われました。情報は再選され、キモシャンチェンバイバオは暖かく保ち、管理の変更を引き渡す必要があることがわかり、症状を修復し、病気の症状と6つのタイプを特定します。ライト 6 種類のリハビリテーション ベルトとは何ですか? 風が南光に戻った後、Laolunkebei は商品を収集することを計画しており、作業が統合され、ステップ番号がリストされ、温度が取り付けられ、シャフトがしっかりした色に研磨されました。口頭判定が回収され、金メダルが判定され、基準層が停止され、国境は万泉までクリアされ、工場は海から離れて右側に渡され、子供の青少年証明書は低く渡されます。 -国 8 つのテスト規制は遠くありません。兵士はしっかりしており、歯は薄く、影は小さく、効果は空に押し出され、ブレード率が説明されています。現在の選択はヤンデです、差は敵の半分です、最初のフィルムが適用され、音声が受信され、華州に名前が付けられ、赤色が継続され、制服の薬のマークが保存されにくく、兵士の身体が測定されますタイトな液体システム、正確な重量角度、寸法削減ボード、Xu壊れた技術、底床フィールドの潜在的なエンドセンス、Hecun組成、非エンゲージメント、Yamo家族の消防セクションの計算、適切な値、美しい外観、Huang Yibiao、朝シフト小麦の刈り取り。文字行 台湾の声は張壤を攻撃し、後草を傷つけ、何樹飛を、正しい都市の厳格な道をたどってカタツムリ検査をし、左ページ、蘇仙の痛烈な英国に抵抗し、すぐに悪い手を言う、黒蜂州、黒蜂州、針だけ、どうやって王の目を助けるために首都を植えるために、彼女は苗木を捕まえ、その逆も同様で、酸っぱさと古いが十分な短いストロークを引き起こす周囲の食物放射性源について話します 教師李曲春源超負の砂封印の変化太茂貧困削減陽江分析ムームーヤンチー。 Chao Medical School Gu Ni Dao Song Ting Wei Shu Hua Station Another Wei Zi Gu Gang Wrote Liu Weilue Fan Gong A Kuai あるカンフーセット フレンド制限アイテム Yu を巻き戻して法雨を作成し、Gu Yuan にチュピボが死んだ毒のサークルを占領するのを手伝ってもらいます、魏志トレーニングと制御は、ユンフを見つけるために刺激し、亀裂粒粒マザートレーニングプラグスチールトップポリシーダブルを間違ったままにする基礎を吸ってブロックするので、cunシールド遅くシルクガール散在溶接力朱プロ入院冷たく徹底的な爆撃散在ビジネスビジュアルアート破壊版 嘘ゼロの部屋 光血回 李ポンプ検査の欠如 覚府市フラッシング土壌 建福珠李王潘 磁気男性が閉じ込められているようです ゴン一州は配達奴隷のサイドランカバーを脱ぎます 距離を振り、星に触れ、彼を送ります独立した役員はまだ現れていません。広い冬の章は、責任が成熟しており、厳しい価格が保証されています。槍は損傷し、綿は粉塵に侵されていますが、羅日比は卵箱、手のひらの酸素、愛を訴え、キャンプを解散し、蒙銭が疲れ果てるのを待っていました、ロシアは縮小し、砂は後退しました。ロータリー徴税スロットを利用した若者を運ぶための装置に挑戦し、肩を保持し、まだああ、新鮮なバーカード、大まかな導入、塩の終わりを恐れて、蜂によって編集された陰峰を掘削し、追いかけました。急いで傷を拡張し、コアエッジを露出させ、中央の5つの領域を移動し、振動し、振動させ、非常に速く、順序が狂い、紙なし、夜の街、長期の隷属、シリンダークリップ、蘭英溝Bを読みますか?私たちの雅勇タイルを修復し、カーボンを注ぎ、その力を示し、歯を取り付け、永タイルを斜めに灌漑し、王仙、豚と外国の腐ったものを通り抜けてください、Si Wei、Kuo Maoを通過してください、尾の束が強い場合は微笑むのが適切です激しく、キャベツの穂、朱漢玉、緑の引きずる牛は秋に染まり、翡翠の夏に鍛えられます、井戸の先端を癒します、肥州、訪問し、青銅の端を吹き、転がる客を呼び、干ばつを呼びます、心を啓発し、脳を突き刺し、チベットを通過し、ギャップを敢えて注文し、炉の殻、硫黄炭、キャストとスティックを歓迎し、薄い10日間を探索し、幸運を祈り、儀式に耽溺し、鎮圧したいと願う残りの雷、煙を伸ばし、純粋で徐々に耕し、実行し、ゆっくりと植え、ルーチーファンの領域、潮が渡り、西のプール、船が破壊され、偽の光は夫に託されたと言われました。 、Zhehuai、切り取って貢物を捧げ、強い富を贈り、儀式をし、沈め、麻を精製し、祖先を罪にし、休息し、戦車を売り、絵を描き、龍の倉庫を養い、Fangge Hanxi、兄弟は建物を守ります。老廃物を払いのけ、腹を抱え、鏡を記録する、女たち、邪悪な脂肪、危険をこする、鐘を讃える、暗号を揺るがす、討論、竹の谷、混沌を売る、徐橋、オーバー、垂直道路に突進する、正面壁ネット、野生の遺跡を横取りする、陰謀、授業を中断する、狂気を抑える、シェンナイ・エイド・ザ、鍵を考える、福清に戻る、馬の周りに集まる、急いで踊る、ロープに遭遇する、顧暁陽湖、釘核、壊れたサウンドトラック、ランプを伸ばす、洪水を避ける、死ぬ、勇敢に答える、黄劉海傑、洪水に襲われるガンヌオガイ咸農島、大砲が注ぐ、スポット情報、精霊の卵を理解して子供を閉じて胸を解放する、巨大なプライベートバンカー。 、イー・ジンタン、疲れた制服型、ドゥ・レレ、カーブで区切られ、趙シャオ、胡胡同峰、リン・チャイ・スプリング・ウー、上定にジャンプ、秦シャオ、ビームを追いかけ、アルカリを壊し、特別な丘を掘り、刃を掘りました、ドラマ、へへ胸。ヘンチンの映画記事が事件出版に掲載されました。魏晋の腕、茶色の土地、ジャンズン・ドゥバモ、サンポの縫製警察が趙に送るのはばかげています。ミンパッド、カン・ズンムは、服を忘れた庭の舌の肉の兄弟、ウー・ミンフイにだまされました、サン・リンリンはだまされて借りました、ダンドゥの耳は剃られ、虎のペンは細く、クンラン・サのお茶のしずくは浅く、彼女の性器は覆われています。ルンニアンの大量の袖ビーズで、彼女の母親の紫色のオペラタワーは打ちのめされ、彼女の外見はきれいで、彼女の顔はきれいで、彼女の顔は壊れていて、彼女の頭は疑わしく、彼女の暴君は顔を輝かせ、彼女は自分について不平を言い、彼女は冷酷です、そして突然、喬唐はニュースを漏らし、沈み、溶け、塩素、不毛の茎、果肉を奪う、忠実である、そしてロックを捕まえる、あなたは呉志丹を利用して、反乱軍の家畜を許可します。囚人は錆に触れ、ガラスを掃除します、ワインロープ、貧しい池、乾いたバブルバッグ、ラングフィード、アルミニウムの柔らかい運河、習慣的な取引の排泄物、包括的な壁、反対側のインクが開口部を妨げ、逆に荷降ろしする霧の王冠、ビングストリート、楽北放射腸、フージ。ルイが驚いて数秒間ぶら下がっている腐った森「唐盛の凹面陶器の詩チー・カン・イー・ジュ」を参照してください;
$len = mb_strlen($ch_str,"utf-8");//漢字の長さ
$str = array();
for($i=0;$i
$pos = mt_rand(0,$len-5);//開始位置
$str[] = mb_substr($ch_str,$pos,1,"utf-8");
}
$authnum_session = implode("",$str);
$_SESSION['authnum_session'] = $authnum_session //セッションに記録します
;Header("コンテンツタイプ: 画像/PNG");
//画像の長さと高さ
$image_x=100;
$image_y=50;
$im = imagecreate($image_x,$image_y);
//ここの写真の背景色は白です
$bkg = ImageColorAllocate($im,255,255,255);
// 表示されるフォント スタイル。ファイルを対応するディレクトリに配置する必要があります。ファイルがない場合は、ウィンドウ フォント ファイルに移動して探します。
$fnt = "simhei.ttf";
//画像に色を割り当てます
$white=ImageColorAllocate($im,234,185,95);
//画像上に楕円弧を描き、下側の座標点を指定します
imagearc($im, 150, 8, 20, 20, 75, 170, $white);
imagearc($im, 180, 7,50, 30, 75, 175, $white);
//画像上に線分を描き、下の座標点を指定します
イメージライン($im,20,20,180,30,$white);
イメージライン($im,20,18,170,50,$white);
イメージライン($im,25,50,80,50,$white);
//ランダムなポイントの数
$noise_num=3000;
$line_num=50;
//紛らわしい様々な文字の色
$rectangle_color=imagecolorallocate($im,0xAA,0xAA,0xAA);
$noise_color=imagecolorallocate($im,0x00,0x00,0x00);
$font_color=imagecolorallocate($im,0x00,0x00,0x00);
for($i=0;$i
{
// 座標点上に単一のピクセルを描画します。この点は上で定義されており、黒です。
//imagesetpixel($im,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color);
}
for($i=0;$i
{
$line_color=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
// 2 つの座標点の間に線を描き、色は上で定義されています
imageline($im,mt_rand(0,$image_x),mt_rand(0,$image_y),mt_rand(0,$image_x),mt_rand(0,$image_y),$line_color);
}
($i=0;$i
{
ImageTTFText($im, rand(18,20), rand(0,20), rand(($image_x/4)*$i+$image_x/100,($image_x/4)*$i+$image_x/8), rand($image_y/2+$image_y/10,$image_y/2+$image_y/5), $font_color, $fnt, $str[$i]);
}
画像PNG($im);
ImageDestroy($im);
?>
注:
漢字の認証コードは個別に実行され、セッションを取得すると、認証コードとセッションの内容が一致していないことがわかります。ただし、imgタグのsrc属性で漢字検証コードファイルを参照してセッションを取得すると、両者の内容は一致します。
興味のある友達はこれをさらに改善できます。
http://www.bkjia.com/PHPjc/965526.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/965526.html技術記事この記事では主に PHP で実装されたアルゴリズム検証コードと漢字検証コードの例を紹介します。必要な方は実装コードを直接提供します...
。