「文字識別」ではないCAPTCHA
こんにちは。CoCo一番のカレーを1食1辛ずつ上げていく事にチャレンジ中の亀本です。
前回6辛までいって、次回は7辛です。
さほど辛さに強くないので、そろそろ泣きそうです。ちなみに前回は食後に鼻血出しました。
今回はちょっとCAPTCHAのライブラリをあさってみました。
PHPで普通に文字画像識別によるCAPTCHAを実装するのであれば、
PEAR::Text_CAPTCHA
http://www.doyouphp.jp/sample/sample_others_captcha.shtml
や、Visual and Audio CAPTCHA
http://www.phppro.jp/phptips/archives/vol34/#1
といったものがあり、他にも
http://phpspot.org/blog/archives/2006/11/phpcaptcha.html
などでまとめられているように、数多くのライブラリが存在します。
これら文字画像識別のCAPTCHAは一般的ですが、そればかりでもつまらないので、少し変わったCAPTCHAを扱いたいなー、と思い、以下の2つのライブラリを使用してみました。
1.PEAR::Text_CAPTCHA_Numeral
http://pear.php.net/package/Text_CAPTCHA_Numeral
2つの数字による簡単な計算式を提示し、その計算結果を答えさせることで認証を行う、という仕組みのCAPTCHAライブラリです。
まずは、いつものごとくインストール
これを使って、簡単なサンプルを作成してみました。
numeral_ex.php:
このライブラリは非常に小さく、publicなメソッドは、コンストラクタを除くと
getAnswer()
getOperation()
getFirstNubmer()
getSecondNumber()
の4つしかありません。
どれも単純な命名なので、使い方は名前から想像出来ますね。
普通の数字を用いるため、このままでは強度が高いとは言えない気もしますが、画像を使用せず、しかも容易にCAPTCHA認証が組み込めるのでちょっとしたところには便利だと思います。
2.Auth_Kitten
http://labs.cybozu.co.jp/blog/tsuruoka/anubis/blog_show/46
仔猫の画像を選択することで認証を行おう、という仕組みのライブラリです。
インストールはやっぱりいつもの如く
本当ならここで仔猫画像を集めなければいけませんが、このライブラリにはデフォルトで使用する素敵な猫画像がついていますので、これをそのまま使用します。
以下に簡単なサンプルを作成してみました。
# といっても、ほぼ配布元サイトと変わりませんが。。。(^^;
kitten.php:
viewer.php(画像表示):
仔猫画像は見ていても和みますし、実際のCAPTCHAとしての機能もなかなかのものです。
もちろん独自の画像も使用できますので、仔猫に限らず好みの画像認証が可能です。
その場合には、画像の入ったディレクトリ内に
kittin/
other/
という2つのディレクトリを用意し、その中にそれぞれOKの場合とNGの場合の画像を入れます。
そして、その画像ディレクトリをsetImagePathメソッドで指定してやれば利用可能です。
なお、その際にはファイル名はできるだけ重複しないようにして下さい。
様々なCAPTCHA認証がありますが、こんな一風変わったものも存在します。
何かの折に、使ってみると面白いかもしれません。
前回6辛までいって、次回は7辛です。
さほど辛さに強くないので、そろそろ泣きそうです。ちなみに前回は食後に鼻血出しました。
今回はちょっとCAPTCHAのライブラリをあさってみました。
PHPで普通に文字画像識別によるCAPTCHAを実装するのであれば、
PEAR::Text_CAPTCHA
http://www.doyouphp.jp/sample/sample_others_captcha.shtml
や、Visual and Audio CAPTCHA
http://www.phppro.jp/phptips/archives/vol34/#1
といったものがあり、他にも
http://phpspot.org/blog/archives/2006/11/phpcaptcha.html
などでまとめられているように、数多くのライブラリが存在します。
これら文字画像識別のCAPTCHAは一般的ですが、そればかりでもつまらないので、少し変わったCAPTCHAを扱いたいなー、と思い、以下の2つのライブラリを使用してみました。
1.PEAR::Text_CAPTCHA_Numeral
http://pear.php.net/package/Text_CAPTCHA_Numeral
2つの数字による簡単な計算式を提示し、その計算結果を答えさせることで認証を行う、という仕組みのCAPTCHAライブラリです。
まずは、いつものごとくインストール
- #
pear install Text_CAPTCHA_Numeral
これを使って、簡単なサンプルを作成してみました。
numeral_ex.php:
- require_once
"Text/CAPTCHA/Numeral.php"; - session_start();
- if
(isset($_POST["answer"]) && $_POST["answer"] && isset($_SESSION["answer"])) { $message = ($_POST["answer"] == $_SESSION["answer"]) ? "認証OK" : "認証NG"; unset($_SESSION["answer"]); - }
- $numeral
= new Text_CAPTCHA_Numeral(); - $_SESSION["answer"]
= $numeral->getAnswer(); - <html>
- <head>
<title>Text_CAPTCHA_Numeralサンプル</title> - </head>
- <body>
<h1>Text_CAPTCHA_Numeralサンプル</h1> if (isset($message)): <p style="color:#FF0000;"> echo $message; </p> endif; <form action="numeral_ex.php" method="post"> 次の計算結果を入力してください。 echo $numeral->getOperation(); <input type="text" name="answer" value="" /> <input type="submit" name="submit" value=" 認証 " /> </form> - </body>
- </html>
このライブラリは非常に小さく、publicなメソッドは、コンストラクタを除くと
getAnswer()
getOperation()
getFirstNubmer()
getSecondNumber()
の4つしかありません。
どれも単純な命名なので、使い方は名前から想像出来ますね。
普通の数字を用いるため、このままでは強度が高いとは言えない気もしますが、画像を使用せず、しかも容易にCAPTCHA認証が組み込めるのでちょっとしたところには便利だと思います。
2.Auth_Kitten
http://labs.cybozu.co.jp/blog/tsuruoka/anubis/blog_show/46
仔猫の画像を選択することで認証を行おう、という仕組みのライブラリです。
インストールはやっぱりいつもの如く
- pear
install http://labs.cybozu.co.jp/blog/tsuruoka/archives/Auth_Kitten-0.1.0.tgz
本当ならここで仔猫画像を集めなければいけませんが、このライブラリにはデフォルトで使用する素敵な猫画像がついていますので、これをそのまま使用します。
以下に簡単なサンプルを作成してみました。
# といっても、ほぼ配布元サイトと変わりませんが。。。(^^;
kitten.php:
- require_once
'Auth/Kitten.php'; - $kitten
= new Auth_Kitten(); - if
(isset($_POST['submit']) && $_POST['submit']) { $message = $kitten->verify($_POST['kitten']) ? "認証OK" : "認証NG"; - }
- $html
= $kitten->buildHtml('viewer.php?f='); - <html>
- <head>
<title>Auth_Kitten サンプル</title> - </head>
- <body>
<h1>Auth_Kitten サンプル</h1> if (isset($message)): <p style="color:#FF0000"> echo $message; </p> endif; <form method="post"> echo $html; <input type="submit" name="submit" value=" 認証 " /> </form> - </body>
- </html>
viewer.php(画像表示):
- require_once
'Auth/Kitten.php'; - $auth
= new Auth_Kitten(); - $photo
= $auth->drawImage(basename($_GET["f"])); - echo
$photo;
仔猫画像は見ていても和みますし、実際のCAPTCHAとしての機能もなかなかのものです。
もちろん独自の画像も使用できますので、仔猫に限らず好みの画像認証が可能です。
その場合には、画像の入ったディレクトリ内に
kittin/
other/
という2つのディレクトリを用意し、その中にそれぞれOKの場合とNGの場合の画像を入れます。
そして、その画像ディレクトリをsetImagePathメソッドで指定してやれば利用可能です。
なお、その際にはファイル名はできるだけ重複しないようにして下さい。
様々なCAPTCHA認証がありますが、こんな一風変わったものも存在します。
何かの折に、使ってみると面白いかもしれません。
トラックバックURI
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













コメントフォーム