Simple CAPTCHA elismerése GOCR és php, stackoff

Simple CAPTCHA elismerése GOCR és php, stackoff

A folyosón az egyik feladat a programozás kapott captcha. azt szeretnénk, hogy el kell ismerni 15 másodpercen belül. Kézzel megadott adatok lehetetlen, mivel ez áll a 96 karakter, az ábécé 16 hexadecimális értéket. Igen, úgy, hogy ez egy hosszú CAPTCHA 🙂 De a feladatot, így a programozás ág, akkor mi dönti el.

Külsőleg, a kép így néz ki:

Az előnye, hogy generáló algoritmust tartalmazhat kis betűket és a számuk. Ami a többit illeti, hogy felbomlik ez nem nehéz. Elismerés a CAPTCHA, mint bármely más formában képeket lehet tenni a különböző módon. Úgy döntöttem, hogy a kész OCR. Ez a fajta dolog, hogy nem a legtöbb munka számunkra. Kísérlet a különböző szoftver tervezett optikai karakterfelismerés, megállt GOCR. Ez a program létezik az összes elterjedt operációs rendszer, de ez inkább kellemes - ez az Ubuntu tárolókban (ami Backbox forgalmazás épül).

telepítése GOCR

Régebben élvezni a menedzser APT csomagot, így:

Gotsr beállítás, akkor ellenőrizze annak teljesítményét futó terminál GOCR <опции> / Path / to / kép

Mivel esetünkben egy bázis értékek 0-9 és a-f definiáljuk őket paraméter C.

Simple CAPTCHA elismerése GOCR és php, stackoff

Nem rossz. Sikeresen által elismert szinte az összes karakter, kivéve a négy, kilenc és nulla, ami már piros színnel kiemelve. Ez lehet hagyni, és így van, de ez nem fog működni, hagyja az ügyet a rand () a sorsa egy rossz ötlet. Tehát van két lehetőség közül választhat:

  1. vonat GOCR pontos felismerése problémás karakterek
  2. használja a lehetőséget, hogy javítsa

Azért választottam a második utat, mivel a keresést információra képzés gOCR'a vágy adósságait. Esett a választás, a PHP és a GD-modul.

Kivágott 0, 4 és 9 egyéni fájlokat, elkezdtem kódoló szarvasmarha.

A hívás indításához keresztül shell_exec GOCR és lefordítja a karakterek a tömbben.

Aztán majd át az így kapott szöveget, és ha nnatknulis egy ellentmondásos karakter, ami lehet 0, 4, vagy kilenc - ami a mi GetChar funkció (pozíció) érv helyzetét egy karakterhez.

funkció feladata, hogy hasonlítsa össze a kép darab nyert teljes CAPTCHA minden faragott kézzel általam karaktereket. Ha a szám a fehér pixelek a két darabot ugyanabban a helyzetben több mint 8 egység, az írható $ válasz [$ pos].

Levezetjük a végeredmény a feldolgozás után.