2012-04-18 19 views
2

reCaptchaは現在(実際には解読するのが)難しいです。だから私は使用する代替キャプチャシステムを探しています。シンプルな数学に基づいたcaptcha

私は単純な数学ベースのシステムを使用することを考えています。たとえば、「What is 2+5」です。

このようなプラグインがありますか、自分自身をビルドする方法についてのアイデアはありますか?

(未複雑な数学like this one

答えて

1

あなたは以下の私のようなキャプチャ方法を試してみましたが役立ちます

Random a=new Random(); 
    a.Next();//it will return you a non negative number 
    a.Next(min value,maximum value);//it will return you a number between the range specified. 

希望C#でコーディングされていますか?

what are the downpoints of this captcha method

かを具体的にユーザー入力方法を使用することを望んでいますか?

0

どのようCaptchatorを使用してはどうですか?

実装が簡単で、機能します。 PHPやRuby用のコードサンプルもあり、他の言語で実装するのは難しいはずはありません。

数学ベースのcaptchaのは数学を行う方法を知っている多くのスパムロボットがそこに存在し、弱いと合格するのは簡単です:)

0

私はシンプルなものを作るとしたら、それはの線に沿って行くだろう。

花、果物、野菜、肉などさまざまなカテゴリのアイテムを作成します。その後、カテゴリーの合計を求めるためにキャプチャをデザインします。

例:

カテゴリをランダム化し、2つの固有のものを選択します。だからおそらく花と果物を手に入れました。次に、「3バラ、4オレンジ、6リンゴがあれば、果物はいくつありますか?

簡易パターン:

n-1個の固有のカテゴリを取得します。各アイテムが一意のカテゴリの1つに属するn個のアイテムを表示します。 1つのカテゴリから合計を求めます。

0

このようなキャプチャを自分で作成することができます。あなたがしなければならないことは、与えられた数のリストの間の乱数を拾い上げ、関数を2回呼び出して2つの乱数を拾う関数を作成することだけです。

結果をセッション変数または他の変数に格納し、後で検証できるようにします。以下

は例では、これが

2

PHP - 簡単な加算または減算の数学的質問を生成します。数字(10-3)と単語(7 + 5)をランダムに交互に使用し、数値的に(14)または単語(14)として受け入れます。式の成分を表す配列を返します

[0] - 最初の変数の値を文字列として '4'または 'four'のように返します [1] - 2番目の値、 '+'または 'プラス ' [2] - 3番目の値、' ten 'や' 10 'のような第2変数 [3] - ' 14 'のような数値形式の回答 [4] - テキスト形式の回答like 'fourteen'

この式をページに印刷し、配列を$ _SESSIONに格納して、ユーザーが入力した答えを確認してください。

<?php 

// array of numbers and their corresponding word versions 
// you can simply do $wordNumbers[6] and get 'six' 
$wordNumbers = array(
    0 => 'zero', 
    1 => 'one', 
    2 => 'two', 
    3 => 'three', 
    4 => 'four', 
    5 => 'five', 
    6 => 'six', 
    7 => 'seven', 
    8 => 'eight', 
    9 => 'nine', 
    10 => 'ten', 
    11 => 'eleven', 
    12 => 'twelve', 
    13 => 'thirteen', 
    14 => 'fourteen', 
    15 => 'fifteen', 
    16 => 'sixteen', 
    17 => 'seventeen', 
    18 => 'eighteen', 
    19 => 'nineteen', 
    20 => 'twenty' 
); 

/* 
* 
* returns an array representing components of a math captcha 
* [0] - first variable value, as string, like either '4' or 'four' 
* [1] - second value, the operator, like '+' or 'plus' 
* [2] - third value, the second variable, like 'ten' or '10' 
* [3] - the answer, in numerical form, like '14' 
* [4] - the answer, in text form, like 'fourteen' 
*/ 
function getMathCaptcha(){ 

    global $wordNumbers; 

    $equation = array(); 

    // get first number, between 7 and 13 inclusive 
    $n1 = rand(7, 13); 
    $r = rand(0,1); 
    // return $n1 as digit or text 
    if ($r == 0) { 
     $equation[0] = $n1; 
    } else { 
     $equation[0] = $wordNumbers[$n1]; 
    } 

    // get operator 
    $o = rand(0,1); 
    $r = rand(0,1); 
    if ($o == 0){ 
     // subtraction 
     if ($r == 0) { 
      $equation[1] = '-'; 
     } else { 
      $equation[1] = 'minus'; 
     } 
    } else { 
     // addition 
     if ($r == 0) { 
      $equation[1] = '+'; 
     } else { 
      $equation[1] = 'plus'; 
     } 
    } 

    // get second number, between 0 and 7 inclusive, so no negative answers 
    $n2 = rand(1,7); 
    $r = rand(0,1); 
    // return $n2 as digit or text 
    if ($r == 0) { 
     $equation[2] = $n2; 
    } else { 
     $equation[2] = $wordNumbers[$n2]; 
    } 

    // get answer 
    if ($o == 0){ 
     $answer = $n1 - $n2; 
    } else { 
     $answer = $n1 + $n2; 
    } 

    // answer as digit and text 
    $equation[3] = $answer; 
    $equation[4] = $wordNumbers[$answer]; 


    return $equation; 

} 


?> 
+0

あなたはPHPで作業していませんが、ロジックは非常に明白であり、好きな言語に移植するのは簡単です。 – siliconrockstar

関連する問題