node-ccap 모듈은 보안 문자 확인 코드를 어떻게 생성합니까?

零下一度
풀어 주다: 2017-07-02 10:15:45
원래의
1346명이 탐색했습니다.

이 글에서는 captcha인증 코드를 생성하는 node-ccap 모듈을 주로 소개합니다. 편집자는 이것이 꽤 좋다고 생각합니다. 이제 공유하고 참고하겠습니다. 편집기를 따라 살펴보겠습니다

준비 사항은 다음과 같습니다.

이 라이브러리는 python2.7에 의존합니다. 시스템 환경 변수 PATH에 "C:Python27"과 같은 설치 디렉터리를 추가합니다.

2. node-gyp 설치

전역적으로 node-gyp을 설치합니다. npm install -g node-gyp를 실행합니다.

3. ccap 설치

npm install ccap
로그인 후 복사
여기서는 프로젝트 디렉터리에 node_modules 폴더를 업로드하지 마세요. Windows와 Linux는 다릅니다.

웹 개발을 위해 노드를 사용할 때 인증 코드가 필요한 영역이 발생할 수 있습니다. 이전에 github에서 검색한 결과 node-captcha와 같은 일부 라이브러리는 이전처럼 타사 그래픽 처리 라이브러리나 소프트웨어에 의존해야 한다는 것을 발견했습니다. 그래픽 라이브러리 cario를 설치하는 데 많은 노력이 필요했지만 실제로는 이미지 수정 및 자르기, 인증 코드 생성 등 이러한 그래픽 라이브러리의 몇 가지 작은 기능만 사용했습니다.


먼저 C++ 그래픽 라이브러리인 CImg를 소개하겠습니다. CImg는 로딩, 처리, 표시, 저장 등 일련의 기능을 제공하는 크로스 플랫폼 C++

이미지 처리

라이브러리입니다. 라이브러리입니다. CImg.h 파일은 하나만 있으므로 이식성이 뛰어나고 환경 친화적이며 많은 종속 항목을 설치할 필요 없이 어디서든지 컴파일하고 사용할 수 있습니다. 그래서 이 CImg 그래픽 라이브러리를 사용하여 인증 코드 구현 기능부터 시작하여 간단한 데모를 만들고 싶었습니다. 물론 이 라이브러리를 사진 자르기와 같은 다른 기능에도 완벽하게 사용할 수 있습니다.

ccap 모듈은 CImg 그래픽 라이브러리를 기반으로 하는 패키지로, CImg 그래픽 라이브러리의 이식성으로 인해 ccap 모듈은 다른 타사 그래픽 라이브러리에 의존하지 않고 독립적으로 작동할 수 있습니다. 즉, 간단한 인증코드만 생성하고 싶다면 ccap 모듈만 있으면 됩니다.

생성된 이미지 예:

1. 설치: 일반 방법: npm install ccap 또는 github을 통해 다운로드, 주소:

https://

github.com/DoubleSpout/ccap

2. Linux 64비트 서버의 인증코드 생성 속도는 1200회/초에 달할 수 있습니다. 테스트에서 생성된 사진은 BMP이며, jpeg 사진 인증코드 생성 속도는 약 600회/초입니다.

3. 선언 방법:

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

  }

});
로그인 후 복사

위 코드를 통해 ccap 클래스를 인스턴스화할 수 있습니다. 1. 어떠한 매개변수도 전달하지 않고 기본 매개변수를 모두 사용하여 인증코드를 생성합니다. 2. 인스턴스화를 위한 너비, 높이, 오프셋만 전달하고, 이미지의 크기와 이미지 내 텍스트 사이의 간격을 조정합니다. . 너비 외에도 높이와 오프셋도 이미지 품질과 난수 생성 방법을 전달합니다. ccap 모듈은

custom 함수

에서 반환된 문자열을 이미지 확인 코드의 내용으로 사용합니다. 기본값은 0-9이며 A-Z의 6자리 임의 문자열입니다.


이론적으로는 서로 다른 ccap 인스턴스가 많이 생성될 수 있고 서로 영향을 미치지 않으므로 클러스터를 통해 다중 프로세스 노드가 시작되고 동시에 인증 코드가 생성되어도 상호 영향은 없습니다. 잠금 효과.

이미지 품질의 경우 jpeg 이미지에만 유효합니다. jpeg lib 라이브러리가 설치되어 있지 않으면 bmp 비압축 그래픽만 사용할 수 있지만 생성 속도는 더 빠릅니다. 4. 사용 방법, 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];
로그인 후 복사

ccap 클래스를 인스턴스화한 후 이 개체에는 get()이라는 외부 메서드가 하나만 있습니다. 확인 코드 버퍼를 반환하고 해당 텍스트 문자열 내용은 다음과 유사한 구조로 배열에 저장됩니다.


["captcha text","picture buffer"]
로그인 후 복사

5 간단한 웹 예:


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/');
로그인 후 복사

위의 예는 다음을 반환합니다. 인증 코드를 클라이언트에 전달하고, 해당 인증 코드의 텍스트를 출력하고 favicon.ico 요청을 차단합니다.

결과는 아래와 같습니다.


Interested TX에서 다운로드하여 사용해 볼 수 있습니다. jpeg 라이브러리가 설치되어 있으면 루트 디렉터리에 있는 바인딩.jpeg.gyp를 덮어쓰고 바인딩.gyp로 이름을 바꾸면 됩니다. 그런 다음 다시 빌드하여 사용하세요. jpeg 이미지가 인증 코드로 사용되므로 크기가 훨씬 작아집니다. 또한 ccap 모듈에는 더 나은 성능을 달성하기 위한 몇 가지 캐싱 메커니즘이 있습니다.

현재 ccap은 Linux 시스템용 jpeg 검증 코드를 지원하며 크기가 45kb에서 6kb로 줄었습니다.

위 내용은 node-ccap 모듈은 보안 문자 확인 코드를 어떻게 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!