웹 개발에서 검증 코드는 사용자 인증의 보안을 보장하기 위해 악의적 인 공격 및 자동화 된 기계 작업을 방지하는 데 널리 사용됩니다. 검증 코드는 이미지 형태의 임의 문자열을 제시하며, 사용자는 후속 작업을 계속하기 전에 올바른 문자를 입력해야합니다. 이 기사에서는 PHP 및 GD 라이브러리를 통해 단계별로 검증 코드 이미지를 생성하고 모범 사례 및 코드 예제를 제공합니다.
GD 라이브러리는 PHP에서 이미지를 처리하기위한 강력한 도구로 그래픽, 텍스트 및 스케일링 이미지를 그리는 것과 같은 기능을 제공합니다. 검증 코드를 생성 할 때 GD 라이브러리를 최대한 활용하여 검증 코드 이미지를 작성하고 작동 할 수 있습니다. 다음은 GD 라이브러리를 사용하여 검증 코드 이미지를 생성하기위한 기본 단계입니다.
먼저 빈 이미지를 만들고 너비와 높이를 설정해야합니다. GD 라이브러리에서 imageCreatetRueColor () 함수를 사용하여 지정된 크기의 진정한 색상 이미지를 만듭니다. 샘플 코드는 다음과 같습니다.
$ width = 200; // 이미지 너비 $ 높이 = 50; // 이미지 높이 $ image = imageCreatetRueColor ($ 너비, $ 높이); // 빈 이미지를 만듭니다
검증 코드 이미지의 가독성과 보안을 향상시키기 위해 이미지에 대한 임의의 배경색을 설정합니다. 배경색은 ImageFill () 함수로 채워질 수 있습니다. 다음 코드 예제는 배경색을 흰색으로 설정하는 방법을 보여줍니다.
$ bgcolor = ImageColorAlloth ($ image, 255, 255, 255); // 배경색을 흰색 ImageFill ($ image, 0, 0, $ bgcolor)으로 설정합니다. // 배경색을 채 웁니다
검증 코드 텍스트 생성은 검증 코드 이미지의 중요한 단계입니다. GD 라이브러리의 imageTtfText () 함수를 사용하여 이미지에 문자를 그리십시오. 다음은 확인 코드 텍스트를 생성하는 코드입니다.
$ font = 'path/to/your/font.ttf'; // 글꼴 파일 경로 $ textColor = imageColorAllocate ($ image, 0, 0, 0); // 텍스트 색상을 검은 색으로 설정하십시오 $ fontsize = 20; // 텍스트 사이즈 세트 $ length = 4; // 검증 코드 길이 $ charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'; // 검증 코드 문자 세트 $ code = ''; for ($ i = 0; $ i <$ length; $ i ++) { $ char = $ charset [rand (0, strlen ($ charset) -1)]; $ code. = $ char; $ x = ($ width / $ 길이) * $ i + 10; // 각 문자의 X 좌표를 계산하십시오 $ y = $ height / 2 + $ fontsize / 2; // 문자의 Y 좌표를 계산하고 imagettftext ($ image, $ fontsize, 0, $ x, $ y, $ textColor, $ font, $ char); // 문자 그리기}
검증 코드의 난이도를 높이고 보안을 향상시키기 위해 검증 코드 사진에 간섭 줄을 추가 할 수 있습니다. Imageline () 함수를 사용하여 간섭 라인을 그릴 수 있습니다. 코드 예제는 다음과 같습니다.
$ linecolor = imageColorAllother ($ image, 0, 0, 0); // 간섭선의 색상을 검은 색 $ linenum = 5로 설정합니다. // ($ i = 0; $ i <$ linenum; $ i ++)에 대한 간섭 줄 수를 설정합니다. $ x1 = rand (0, $ width / 2); $ y1 = rand (0, $ 높이); $ x2 = rand ($ width / 2, $ width); $ y2 = rand (0, $ 높이); Imageline ($ image, $ x1, $ y1, $ x2, $ y2, $ linecolor); // 간섭 줄 그리기}
확인 코드 생성을 완료 한 후 GD 라이브러리의 Header () 및 ImagePng () 함수를 사용하여 확인 코드 이미지를 사용자에게 출력합니다. 다음은 확인 코드 사진을 출력하기위한 코드입니다.
헤더 ( '내용 유형 : 이미지/png'); // 컨텐츠 유형을 이미지/PNG로 설정합니다 imagepng ($ image); // 출력 확인 코드 이미지 이미지 스트로 ($ image); // 이미지 리소스 파괴
위의 단계를 통해 PHP 및 GD 라이브러리를 사용하여 검증 코드 이미지를 생성하는 구현을 완료했습니다. 이러한 단계에는 빈 그림 생성, 배경색 그리기, 검증 코드 텍스트 추가, 간섭선 등이 포함됩니다. 또한 확인 코드의 난이도와 보안을 높이기 위해 실제 요구에 따라 이미지 처리를 추가로 최적화 할 수 있습니다.