웹 개발에 노드를 사용할 때 검증 코드가 필요한 많은 장소가 발생합니다. 이전에 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 = require ( 'ccap');
var captcha1 = ccap ();
var captcha2 = ccap (너비, 높이, 오프셋);
var captcha3 = ccap ({{
너비 : 256, // 세트 너비, 기본값은 256입니다
위의 코드를 통해 CCAP 클래스를 인스턴스화 할 수 있습니다. 1. 매개 변수가 전달되지 않으며 모든 기본 매개 변수는 검증 코드를 생성하는 데 사용됩니다. 2. 패스 너비, 높이 및 오프셋 만 인스턴스화하여 그림의 크기를 조정하고 그림의 문자 사이의 간격을 조정하십시오. 너비, 높이 및 오프셋 외에도 이미지 품질과 임의의 숫자를 생성하는 방법도 전달됩니다. CCAP 모듈은 사용자 정의 함수에 의해 리턴 된 문자열을 이미지 확인 코드의 내용으로 사용합니다. 기본값은 0-9이고 AZ의 6 비트 문자열이 따라갑니다.
이론적으로, 많은 다른 CCAP 인스턴스가 생성 될 수 있으며 서로 영향을 미치지 않으므로 클러스터를 통해 다중 프로세스 노드를 시작하고 동시에 검증 코드를 생성하더라도 서로 잠금되는 영향은 없습니다.
이미지 품질은 JPEG 이미지에만 유효합니다. JPEG LIB 라이브러리가 설치되지 않으면 크기가 상대적으로 크지 만 생성 속도는 비교적 빠릅니다.
4. 메소드 사용, get () :
코드 사본은 다음과 같습니다.
높이 : 60, // 세트 높이, 기본값은 60입니다
오프셋 : 40, // 텍스트 간격을 설정하고 기본값은 40입니다
품질 : 100, // 그림 품질 설정, 기본값은 50입니다
생성 : function () {// cTTCHA 텍스트를 생성하기 위해 함수를 사용자 정의합니다
// 여기에서 보안 문자 텍스트를 생성합니다
텍스트를 반환합니다; // 보안 문자 텍스트를 반환합니다
}
});
CCAP 클래스를 인스턴스화 한 후 Captcha 객체를 얻게됩니다. 이 객체에는 하나의 외부 방법 인 get () 만 있습니다. 이 메소드가 호출 될 때마다 확인 코드 버퍼와 해당 텍스트 문자열 내용을 반환하고 이와 유사한 구조로 배열에 저장합니다.
코드 사본은 다음과 같습니다.
[ "Captcha Text", "Picture Buffer"]
5. 간단한 웹 예제 :
코드 사본은 다음과 같습니다.
var http = 요구 ( 'http');
var ccap = require ( 'ccap') (); // 인스턴스화 된 CCAP 클래스
http.createserver (함수 (요청, 응답) {
if (request.url == '/favicon.ico') return response.end (' '); // request favicon.ico를 가로 채립니다
var ary = ccap.get ();
var txt = ary [0];
var buf = ary [1];
응답 (buf);
console.log (txt);
}). 듣기 (8124);
Console.log ( 'http://127.0.0.1:8124/'에서 실행되는 서버);
참고 : 일부 코드 매개 변수는 자체 환경에 따라 수정할 수 있습니다.