CAPTCHA-Generation in perl mit Authen:: Captcha
Ich habe bereits Algorithmus und den vorhandenen Code gegeben um die Überprüfung Bild (SAPTCHA) für Perl, mit Hilfe der Bibliothek Bild umgesetzt zu erzeugen:: Magick (stellt eine Schnittstelle zwischen Perl und den meisten imagemagick). Jetzt möchte ich über die Arbeit mit der Bibliothek Authen Diskussion:: Captcha, da die Interaktion mit leichter, obwohl Verlust an Flexibilität bei der Festlegung des erzeugten Bildes. By the way, es ist die Flexibilität in der Bibliothek GD:: SecurityImage, aber es otstutstvuet einfachen Mechanismus für die Auswertung von Benutzereingaben (dieser Mangel sollte der GD entzogen werden: SecurityImage:: AC - "Fusion" Authen:: Captcha und GD:: SecurityImage, die Ich habe auch auf jeden Fall versuchen und informieren Sie über die Ergebnisse).
Perl-Code, um das CAPTCHA-Bild erzeugen
! # / Usr / bin / perl verwenden Authen:: Captcha; use Digest:: MD5 qw (md5_hex); my $ cap_data_folder = 'tmp / captcha'; # Es wird eine Textdatei mit den Codes CAPTCHA werden my $ cap_out_folder = 'tmp / outputcaptcha '; # Hier sind die Bild Verifikation CAPTCHA my $ cap_length = 4 # Wie viele Zeichen werden Captcha-my $ captcha = Authen:: Captcha-> new (data_folder => $ cap_data_folder, output_folder => $ cap_out_folder,); my $ md5sum = $ captcha-> generate_code ($ cap_length); Dieser Code erstellt einen Satz von Zeichen wird das Bild auf sie zu generieren und zurück md5-Hash für ihn. Unsere nächste Aufgabe - für den Anwender zu überprüfen eingegebene Code sootvtetstvie sgenerirovannomuyu.
Perl-Code, um den Wert zu überprüfen eingegeben CAPTCHA
Um den Wert vom Benutzer eingegeben werden, um das Captcha md5-Hash berechnen (die für diese Bibliothek Digest verwendet wird:: MD5).
my $ md5sum = md5_hex ($ cap_input_value); # md5-Hash Vychslyaem für Benutzereingaben my $ result = $ captcha-> check_code ($ cap_input_value, $ md5sum); # Wir geben einen Hash zu überprüfen
Scan-Ergebnisse werden in der Dokumentation für Authen gegeben:: Captcha, ich auch duplizieren sie unter:
1: Passed
0: Code nicht überprüft (Dateifehler)
-1: Fehler: Code abgelaufen
-2: Failed: ungültigen Code (nicht in der Datenbank)
-3: Failed: ungültigen Code (Code stimmt nicht mit crypt)
So ist es genug, einfach auf die Bedingungen für den Betrieb vornehmen, je nach Testergebnissen. Einfacher als
Mehr zu ähnlichen Themen:
Filed under: Internet , Coding |
Tags: captcha , Anleitungen , perl , Programmierung |
10 Kommentare 

Kann nicht finden Authen / Captcha.pm in @ INC (@ INC contains ....
Module installiert, aber das Problem weiterhin besteht
Dieser Satz - es war gut. Aber wenn das Problem weiterhin besteht - würde vorschlagen, dass der Einbauort nicht in @ INC angegeben
Brauchen Sie, um zu überprüfen, wo das Gerät (besonders wenn Sie installiert ist nicht heimisch, um das System-Paket-Manager oder aus der Rutaceae cpan) und fügen Sie den Pfad zu @ INC
Das von der Art und Weise auf Nix, ein natives System für Perl
Und was ist der Sinn in diesen Aufnahmen, wenn überhaupt OCR-Service-Typ können sie passieren. Sie können sogar ihre CAPTCHAs - dort können Sie diese kostenlos testen download
Dort, wie ich verstehe, erkennen die Menschen. Ein CAPTCHA - von Bots.
Nun, nachdem alle Bots senden captcha über die Anerkennung von Menschen! Und das Boot ist geschützt.
By the way, kann es testen Sie die CAPTCHA auf Stabilität. Hagruzhaete es dort zu sehen, wie Menschen sie erkennen.
Das ist richtig. Ich meine, was aus der menschlichen Sinne captcha, aber wenn Menschen erkennen diese Leistungen - tun Sie etwas dumm captcha diskutieren in dieser Weise. Menschen und sollten sie erkennen.
Nächste Frage der wirtschaftlichen Machbarkeit, da die Menschen erkennen nicht frei. So CAPTCHA auf Seiten wie meine völlig gerechtfertigt - es schneidet die Bots und Anerkennung für einen Mann kaum jemand bezahlen.
Du weißt, ich konnte gut bezahlen 30 Rubel für mich, in 1000 erfasst erkennen. Es ist 1000 Meldungen, oder ein neues Benutzerkonto oder Seifen für ein lächerlicher Betrag.
Was dies beweist oder widerlegt in Anbetracht der obigen? Wenn Sie akzeptabel finden erwarteten Dividenden aus solchen Investments - warum nicht?