Heim >Web-Frontend >js-Tutorial >Wie generiert das Node-Ccap-Modul einen Captcha-Bestätigungscode?
In diesem Artikel wird hauptsächlich das Node-Ccap-Modul zum Generieren von Captcha vorgestellt.Der Herausgeber findet es ziemlich gut. Jetzt werde ich es mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen
Die Vorbereitungsarbeit ist wie folgt:
Diese Bibliothek hängt von Python2 ab .7.X und node-gyp, bitte installieren1. Python
Fügen Sie nach der Installation das Installationsverzeichnis wie „C:Python27“ zur Systemumgebung hinzu variabler PATH.2. Node-Gyp-Installation
Node-Gyp global installieren. Führen Sie npm install -g node-gyp aus.3. Installieren Sie ccap
npm install ccapBeachten Sie hier, dass Sie im Projektverzeichnis nicht den Ordner node_modules, Windows, hochladen dürfen Es ist nicht dasselbe wie Linux. Wenn Sie Node für die Webentwicklung verwenden, stoßen Sie möglicherweise auf Bereiche, die Bestätigungscodes erfordern. Ich habe zuvor auf Github gesucht und festgestellt, dass es einige Klassenbibliotheken wie Node-Captcha gibt, die alle auf Drittanbieter angewiesen sind Grafikverarbeitungsbibliotheken oder -software, wie bei der Installation der Grafikbibliothek cario zuvor, war sehr aufwändig, aber tatsächlich haben wir nur einige kleine Funktionen dieser Grafikbibliotheken verwendet, wie z. B. das Ändern und Zuschneiden der Bildgröße oder das Generieren Verifizierungscodes. Lassen Sie uns zunächst CImg vorstellen, die C++-Grafikbibliothek. CImg ist eine plattformübergreifende C++-Das ccap-Modul ist ein Paket, das auf der CImg-Grafikbibliothek basiert und die Verwendung durch Knoten ermöglicht. Aufgrund der Portabilität der CImg-Grafikbibliothek kann das ccap-Modul unabhängig arbeiten, ohne auf andere Drittanbieter angewiesen zu sein. Mit anderen Worten: Wenn Sie nur einen einfachen Verifizierungscode generieren möchten, benötigen Sie einfach das ccap-Modul. Beispiel für ein generiertes Bild: 1. Installation: Allgemeine Methode: npm install ccap oder Download über Github, Adresse:
https:// github.com/DoubleSpout/ccap
2. Die Geschwindigkeit der Bestätigungscode-Generierung kann auf einem 2-CPU-Linux-64-Bit-Server 1200-mal/Sekunde erreichen Die Geschwindigkeit der Generierung des Bestätigungscodes beträgt etwa 600 Mal pro Sekunde. 3. Deklarationsmethode:var ccap = require('ccap'); var captcha1 = ccap(); var captcha2 = ccap(width, height, offset); var captcha3 = ccap({ width:256,//set width,default is 256 height:60,//set height,default is 60 offset:40,//set text spacing,default is 40 quality:100,//set pic quality,default is 50 generate:function(){//Custom the function to generate captcha text //generate captcha text here return text;//return the captcha text } });Sie können eine ccap-Klasse über den obigen Code instanziieren. 1. Übergeben Sie keine Parameter, verwenden Sie alle Standardparameter, um den Bestätigungscode zu generieren. 2. Übergeben Sie nur die Breite, Höhe und den Versatz zur Instanziierung, passen Sie die Größe des Bildes und den Abstand zwischen dem Text im Bild an . Übergeben Sie ein Objekt. Zusätzlich zur Breite, Höhe und Versatz werden auch die Bildqualität und die Methode zur Generierung von Zufallszahlen übergeben. Das ccap-Modul verwendet die von der
benutzerdefinierten Funktion zurückgegebene Zeichenfolge Der Bildverifizierungscode ist 0-9 und 6 für eine Bit-Zufallszeichenfolge.
Theoretisch können viele verschiedene ccap-Instanzen erstellt werden, und sie haben keinen Einfluss aufeinander. Selbst wenn ein Multiprozessknoten über den Cluster gestartet wird und gleichzeitig der Bestätigungscode erstellt wird, ist dies der Fall wird keine gegenseitige Verriegelungswirkung entstehen. Für die Bildqualität gilt dies nur für JPEG-Bilder. Wenn keine JPEG-Bibliothek installiert ist, können Sie nur unkomprimierte BMP-Grafiken verwenden. Die Größe ist größer, aber die Generierungsgeschwindigkeit ist höher. 4. Verwendungsmethode get():var ccap = require('ccap'); var captcha = ccap(); var ary = captcha.get();//ary[0] is captcha's text,ary[1] is captcha picture buffer. var text = ary[0]; var buffer = ary[1];Nach der Instanziierung der ccap-Klasse erhalten Sie das Captcha-Objekt, das nur eines hat Externe Methode, get(), jeder Aufruf dieser Methode gibt den Bestätigungscode-Puffer und den entsprechenden Textzeichenfolgeninhalt zurück, gespeichert in einem Array, mit einer Struktur ähnlich dieser:
["captcha text","picture buffer"]5. Ein einfaches Webbeispiel:
var http = require('http'); var ccap = require('ccap')();//Instantiated ccap class http.createServer(function (request, response) { if(request.url == '/favicon.ico')return response.end('');//Intercept request favicon.ico var ary = ccap.get(); var txt = ary[0]; var buf = ary[1]; response.end(buf); console.log(txt); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/');Das obige Beispiel gibt den Bestätigungscode an den Client zurück und gibt den Text des entsprechenden Bestätigungscodes aus Gleichzeitig wurde die Anfrage für favicon.ico abgefangen. Das Ergebnis ist wie folgt: Wenn Sie interessiert sind, können Sie die TX herunterladen und ausprobieren kann im Stammverzeichnis binden, jpeg.gyp überschreiben und in binding.gyp umbenennen und dann neu erstellen, um JPEG-Bilder als Bestätigungscodes zu verwenden, und die Größe wird viel kleiner sein. Darüber hinaus verfügt das ccap-Modul über einige Caching-Mechanismen, um eine bessere Leistung zu erzielen. Derzeit unterstützt ccap JPEG-Verifizierungscodes für Linux-Systeme und die Größe wurde von 45 KB auf 6 KB reduziert.
Das obige ist der detaillierte Inhalt vonWie generiert das Node-Ccap-Modul einen Captcha-Bestätigungscode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!