今日はちょいと認証の仕組みが欲しかったので、Captchaを勉強してみました。
Captcharってのは、「Completely Automated Public Turing test to tell Computers and Humans Apart」と言って早い話がコンピュータでは解析し難い文字情報を自動で作ることにより人とコンピュータの区別を図るってことらしい。
・ウィキペディアの解釈
・e-wordsの解釈
このサイトでもコメント欄に行くと出てくる読みづらい絵のような文字のことですね。
なんかこーゆーの見ると教習所で受ける色弱検査を思い出しますが・・・。
で、ボクは例によってJavaっ子なのでJavaで使えるものないかなぁ~というところでこれ。
いろいろと調べてみると賛否両論と言うか、、、まぁ良くも悪くもいろんな意見があるのは世の常って感じだったので実際に使ってみることにしました。
まず、

このときは左バーにDownloadがありました。
ちなみにライセンスは「GNU Lesser General Public License v2 (LGPLv2)」なの・・・かな?

あとはこんな感じ。
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.octo.captcha.engine.image.gimpy.DeformedBaffleListGimpyEngine;
import com.octo.captcha.engine.image.ImageCaptchaEngine;
import com.octo.captcha.image.ImageCaptcha;
public class JCaptchaTest {
public static void main(String[] args) {
ImageCaptchaEngine imageCaptchaEngine = new DeformedBaffleListGimpyEngine();
ImageCaptcha imageCaptcha = imageCaptchaEngine.getNextImageCaptcha();
BufferedImage bufferedImage = imageCaptcha.getImageChallenge();
try {
ImageIO.write(bufferedImage,"JPEG",new File("CaptchaImage.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
実行環境の直下に「CaptchaImage.jpg」ってのが出来てたら正解。
とっても簡単に作れました。
後は整合性チェックの部分かなぁ。
続きはまた今度書きま~す。
ちなみに今回参考にさせて頂いたサイトです。
・kaisehのブログ
・徒然なるままにBlog
コメントする