มีหลายสถานที่ที่จำเป็นต้องใช้รหัสการตรวจสอบเมื่อใช้โหนดเพื่อการพัฒนาเว็บ ก่อนหน้านี้ค้นหาบน GitHub มีไลบรารีคลาสบางอย่างเช่น Node-Captcha ซึ่งทั้งหมดขึ้นอยู่กับไลบรารีหรือซอฟต์แวร์การประมวลผลกราฟิกของบุคคลที่สาม ตัวอย่างเช่นเมื่อฉันติดตั้งคลังคลังกราฟิกมันเป็นความพยายามอย่างมาก แต่ในความเป็นจริงเราใช้ฟังก์ชั่นเล็ก ๆ เล็กน้อยของไลบรารีกราฟิกเหล่านี้เช่นการปรับเปลี่ยนและการครอบตัดขนาดของภาพหรือสร้างรหัสการตรวจสอบ
ก่อนอื่นแนะนำไลบรารีกราฟิก CIMG C ++ CIMG เป็นไลบรารีการประมวลผลภาพ C ++ ข้ามแพลตฟอร์มที่ให้บริการฟังก์ชั่นเช่นการโหลดการประมวลผลการแสดงและการบันทึก สิ่งที่น่าสนใจที่สุดคือไลบรารีกราฟิกทั้งหมดเป็นเพียงไฟล์ CIMG.H เพียงไฟล์เดียวดังนั้นจึงเป็นแบบพกพาสีเขียวและเป็นมิตรกับสิ่งแวดล้อม มันสามารถรวบรวมและใช้งานได้ทุกที่โดยไม่ต้องติดตั้งการพึ่งพาการพุชขนาดใหญ่ ดังนั้นฉันจึงต้องการใช้ไลบรารีกราฟิก CIMG นี้เพื่อทำการสาธิตอย่างง่ายเริ่มต้นด้วยฟังก์ชั่นของการใช้รหัสการยืนยันและแน่นอนว่าฉันสามารถใช้ไลบรารีนี้เพื่อทำหน้าที่อื่น ๆ เช่นการครอบตัดรูปภาพ
โมดูล CCAP ขึ้นอยู่กับการห่อหุ้มของไลบรารีกราฟิก CIMG ซึ่งอนุญาตให้ใช้งานโดยโหนด เนื่องจากความสามารถในการพกพาของไลบรารีกราฟิก CIMG โมดูล CCAP สามารถทำงานได้อย่างอิสระโดยไม่ต้องพึ่งพาไลบรารีหรือซอฟต์แวร์กราฟิกของบุคคลที่สามอื่น ๆ กล่าวอีกนัยหนึ่งหากคุณต้องการสร้างรหัสการตรวจสอบอย่างง่ายเพียงแค่ต้องการโมดูล CCAP
1. การติดตั้ง:
วิธีการทั่วไป: NPM ติดตั้ง CCAP
หรือดาวน์โหลดผ่าน GitHub ที่อยู่: https://github.com/doubleSpout/ccap
หมายเหตุ: อาจมีข้อผิดพลาดระหว่างกระบวนการติดตั้ง โปรดติดตั้งแพ็คเกจการพึ่งพาที่สอดคล้องกันตามพรอมต์ข้อผิดพลาด
2. ประสิทธิภาพ:
ความเร็วในการสร้างรหัสการตรวจสอบบนเซิร์ฟเวอร์ 2CPU Linux 64 บิตสามารถเข้าถึงได้ 1200 ครั้ง/วินาที ภาพที่สร้างโดยการทดสอบคือ BMP ความเร็วการสร้างรหัสการตรวจสอบภาพ JPEG อยู่ที่ประมาณ 600 ครั้ง/วินาที
3. วิธีการประกาศ:
การคัดลอกรหัสมีดังนี้:
var ccap = ต้องการ ('ccap');
var captcha1 = ccap ();
var captcha2 = ccap (ความกว้าง, ความสูง, ชดเชย);
var captcha3 = ccap ({
ความกว้าง: 256, // ตั้งค่าความกว้างค่าเริ่มต้นคือ 256
คลาส CCAP สามารถสร้างอินสแตนซ์ผ่านรหัสด้านบน 1. ไม่มีการส่งพารามิเตอร์พารามิเตอร์เริ่มต้นทั้งหมดจะใช้เพื่อสร้างรหัสการตรวจสอบ 2. มีเพียงความกว้างความสูงและชดเชยในการสร้างอินสแตนซ์ปรับขนาดของภาพและช่วงเวลาระหว่างอักขระในรูปภาพ 3. ผ่านวัตถุ นอกเหนือจากความกว้างความสูงและชดเชยแล้วยังผ่านคุณภาพของภาพและวิธีการสร้างตัวเลขสุ่ม โมดูล CCAP จะใช้สตริงที่ส่งคืนโดยฟังก์ชั่นที่กำหนดเองเป็นเนื้อหาของรหัสการตรวจสอบภาพ ค่าเริ่มต้นคือ 0-9 และสตริง 6 บิตของ AZ จะถูกติดตาม
ในทางทฤษฎีสามารถสร้างอินสแตนซ์ CCAP ที่แตกต่างกันได้และพวกเขาไม่มีอิทธิพลต่อกันและกันดังนั้นแม้ว่าคุณจะเริ่มโหนดหลายกระบวนการผ่านคลัสเตอร์และสร้างรหัสการตรวจสอบในเวลาเดียวกันก็ไม่มีผลกระทบต่อการล็อคซึ่งกันและกัน
คุณภาพของภาพใช้ได้เฉพาะกับภาพ JPEG เท่านั้น หากไม่มีการติดตั้งไลบรารี JPEG LIB คุณสามารถใช้กราฟิกที่ไม่บีบอัด BMP ซึ่งมีขนาดค่อนข้างใหญ่ แต่ความเร็วในการสร้างค่อนข้างเร็ว
4. ใช้วิธีการรับ ():
การคัดลอกรหัสมีดังนี้:
ความสูง: 60, // ตั้งค่าความสูงเริ่มต้นคือ 60
ออฟเซ็ต: 40, // ตั้งค่าระยะห่างข้อความค่าเริ่มต้นคือ 40
คุณภาพ: 100, // ตั้งค่าคุณภาพรูป, ค่าเริ่มต้นคือ 50
สร้าง: function () {// กำหนดฟังก์ชันเพื่อสร้างข้อความ captcha
// สร้างข้อความ captcha ที่นี่
ส่งคืนข้อความ; // ส่งคืนข้อความ captcha
-
-
หลังจากอินสแตนซ์คลาส CCAP คุณจะได้รับวัตถุ Captcha วัตถุนี้มีวิธีการภายนอกเพียงวิธีเดียวเท่านั้น Get () ทุกครั้งที่วิธีการนี้เรียกว่าจะส่งคืนบัฟเฟอร์รหัสการตรวจสอบและเนื้อหาสตริงข้อความที่เกี่ยวข้องและบันทึกไว้ในอาร์เรย์พร้อมโครงสร้างคล้ายกับสิ่งนี้:
การคัดลอกรหัสมีดังนี้:
["Captcha Text", "Picture Buffer"]
5. ตัวอย่างเว็บง่าย ๆ :
การคัดลอกรหัสมีดังนี้:
var http = ต้องการ ('http');
var ccap = reghed ('ccap') (); // คลาส CCAP แบบอินสแตนซ์
http.createserver (ฟังก์ชั่น (คำขอ, การตอบกลับ) {
if (request.url == '/favicon.ico') ตอบกลับการตอบสนอง (' '); // การสกัดกั้นคำขอ favicon.ico
var ary = ccap.get ();
var txt = ary [0];
var buf = ary [1];
Response.end (buf);
console.log (txt);
}). ฟัง (8124);
console.log ('เซิร์ฟเวอร์ทำงานที่ http://127.0.0.1:8124/');
หมายเหตุ: พารามิเตอร์รหัสบางอย่างสามารถแก้ไขได้ตามสภาพแวดล้อมของตนเอง