CapTcha
Nachdem ich heute einen Artikel zu den aktuellen und wirklich grottenschlechten RS Captchas gelesen habe, sowie zu dem Google-Mail-Problem, habe ich mich entschlossen, ein neues Captcha-Verfahren zu entwicklen.
Rausgekommen ist dabei dieses Verfahren, das auf zwei Dingen bassiert.
Einmal das Captcha selbst und, sofern möglich, aus mehreren Textfelden.
Und so sieht solch ein Captcha aus:
Zum Verfahren.
Das erzeugte Captcha zeigt zwischen 3 und 7 Buchstaben an. Dabei ist nur einer der Buchstabe in einer einzigen Farbe dargestellt. Alle anderen haben zwei Fraben. (Zurzeit kommt es auch vor, das mehr als 1 Buchstabe nur eine Farbe hat, aber das ist ziemlich selten).
Der Benutzer sieht sich das Captcha an und soll nun herausfinden, welcher Buchstabe in einer einzigen Farbe gefärbt ist. Hat er diesen gefunden, muss er den Text in ein Eingabefeld eingeben. Dabei ist jedoch nicht nur ein Eingabefeld vorhanden, sondern einen zufällige Anzahl zwischen 4 und 8. Jedes Textfeld hat eine eigene Farbe. Eines davon hat allerdings die Farbe des Buchstabens, welcher vom Benutzer erkannt wurde. Und genau dort muss der Benutzer das Wort eingeben, das zu erkennen ist.
Das wäre es auch schon, mit dem Schutz.
Noch eien Kleinigkeit zum Generator selbst.
Er nutzt eine Schrift-BMP Datei, in der sich die einzelnen Buchstaben befinden. Nachdem er eine zufällige Anzahl zufälliger Buchstaben gewählt und jedem Buchstaben einen zufällige Farbe zugeordnet hat, beginnt er, das Captcha mit einem Hintergrund zu fluten, der sich aus kleinen zufälligen punkten in einem maximalen Radius von 12x12 pixel zusammensetzt, welche er um einen zufälligen Punkt zeichnet. Die Farben sind dabei jene, welche den Buchstaben zugeordnet wurde.
So ist es schwerer herauszufinden, was Hintergrund und was Schrift ist.
Nachdem der Hintergrund gezeichnet wurde, wird in einem Zwischenspeicher die Farbe des Buchstabens gefüllt. Anschließend wird entschiesend werden (sofern dieser Buchstabe nicht der Einfarbige ist) eine zufällige Trennungslinie durch den Hintergrund gezogen. Danach wird eine der beiden Seiten mit einer Füllfarbe geflutet.
Danach wird die Maske gezeichnet und der Buchstabe hinein geschreiben. Das wird dann wiederum auf das Captcha gezeichnet.
Zuguterletzt werden noch einige wenige Musterblöcke (wie sie im Hintergrund zu finden sind), über die Buchstaben geworfen. Zum Schluss wird über das gesammte Captcha ein Punktregen gezeichnet.
Wer möchte, kann sich die Captchas abspeichern lassen. Dazu muss nur im Quelltext (kurz vorm Ende) das BSave auskommentiert werden.
Beenden mit ESC, und das nächste Bild mit der 'any-key' Taste erzeugen.
QUELLCODE:
porticula:585
SCHRIFTDATEI:
http://b.imagehost.org/download/0965/font.bmp
Ganz oben, über dem Vorschaubild steht ein Link [Download font.bmp (500 KB)], welcher zum Download führt.
Hf
TPM