Hi,
habe mir das Rechen Captcha mal angeschaut und so wie es ist, ist es leider zu leicht durch ein OCR Programm zu lesen.
BSP
Ich verwende das Open Source OCR Programm GORC, welches nicht das beste OCR Programm ist.
Um nun GOCR zu trainieren habe ich das Captcha Script so "angepasst" das es mir alle möglichen Zeichen ausgibt:
Code:
imagestring($img, 3, 2, 0, "0123456789+-=?", $schriftfarbe);
So sieht die Ausgabe dann aus:
Rufen wir nun GOCR mit den Captcha Bild auf ohne es trainiert zu haben:
Code:
user@localhost ~ $ gocr rc.png
g2345678g+-=?
Bis auf das die 0 und die 9 als g interpretiert werden und die 1 verschwindet schon mal nicht schlecht.
Sagen wir GOCR nun welche möglichen Zeichen vorkommen können sieht das noch was besser aus:
Code:
user@localhost ~ $ gocr -C "0123456789+-=?" rc.png
823456789+=?
Mit den Parameter -m 130 trainieren wir GOCR nun noch:
Nach dem Training sieht die Ausgabe schon was besser aus:
Code:
user@localhost ~ $ gocr -m 130 -C "0123456789+-=?" rc.png
0123456789+=?
Nun wird zwar das Minus verschluckt aber wie gesagt GOCR ist nicht mit einen Kommerziellen OCR Programm vergleichbar und mit etwas mehr zeit ist das Problem bestimmt auch mit GOCR lösbar, zumal das Minus vor dem Training richtig erkannt wurde.
Aber wenn man mal was Beispielbild aus dem Tutorial nimmt klappt das auch so
:
Code:
user@localhost ~ $ gocr -m 130 -C "012345678-9+=?" rechen-captcha.png
18+2=?
Und nun diese Zeichenkette auszurechnen ist nicht mehr schwer... .
Das Problem ist einfach das die Schriftart die in diesem Captcha verwendet wird viel zu einfach von einem OCR Programm lesbar ist,
würde man wie im anderen Tutorial eine schwer lesabre TTF Schrift verwenden sähe das schon ganz anders aus, es würde auch nicht viel bringen anstatt "1+2=?" "eins plus zwei gleich ?" auszugeben dieses Problem ist mit einem kleinen Script auch schnell gelöst... .
Auf diese weise kann man natürlich auch testen ob eine Schriftart im Captcha relativ einfach zu knacken ist oder nicht...
Cu
Caco