>  기사  >  백엔드 개발  >  PHP 인증 코드의 예 및 아이디어 분석

PHP 인증 코드의 예 및 아이디어 분석

*文
*文원래의
2017-12-28 15:41:161606검색

이 글에서는 주로 PHP 인증 코드의 제작 아이디어와 구현 방법을 소개합니다. PHP 인증 코드를 생성하기 위해 맹목적으로 PHP를 구현할 수는 없습니다. PHP 인증 코드의 기본 원리를 이해하고 PHP 인증 코드 구현 방법을 실제로 마스터해야 합니다. 참고로 가능합니다. 그것이 모두에게 도움이 되기를 바랍니다.

1. 제작 아이디어

기계의 악성 등록을 방지하기 위해 등록 코드가 자주 사용되므로 여기서는 png 이미지 확인 코드를 생성하기 위한 기본 이미지를 게시합니다.

1. png 그림
2. 그림의 배경색을 설정하세요
3. 글꼴 색상과 스타일을 설정하세요
4. 생성된 각 문자의 회전 각도와 위치를 조정하세요. 사진에
6. 등록 기계가 원본 사진을 분석하여 악성 등록을 하지 못하도록 노이즈 및 간섭선을 추가합니다.
7. 사진을 출력합니다. 8. 사진이 차지하는 메모리를 해제합니다.


2. 구현 방법

authcode.php 파일


<?php
    session_start ();
    header ( &#39;Content-type: image/png&#39; );
    //创建图片
    $im = imagecreate($x=130,$y=45 );
    $bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
    $fontColor = imageColorAllocate ( $im, 255, 255, 255 );  //字体颜色
    $fontstyle = &#39;rock.ttf&#39;;          //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
    //产生随机字符
    for($i = 0; $i < 4; $i ++) {
        $randAsciiNumArray     = array (rand(48,57),rand(65,90));
        $randAsciiNum         = $randAsciiNumArray [rand ( 0, 1 )];
        $randStr             = chr ( $randAsciiNum );
        imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
        $authcode            .= $randStr; 
    }
    $_SESSION[&#39;authcode&#39;]    = $randFourStr;//用户和用户输入的验证码做比较
    //干扰线
    for ($i=0;$i<8;$i++){
        $lineColor    = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
        imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
    }
    //干扰点
    for ($i=0;$i<250;$i++){
        imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
    }
    imagepng($im);
    imagedestroy($im);        
?>


렌더링:

관련 권장 사항:

PHP를 사용하여 SMS 확인을 보내는 방법 code

Laravel 확인 코드 라이브러리

ecshop에 인증 코드 이미지가 표시되지 않는 문제를 해결하는 방법

위 내용은 PHP 인증 코드의 예 및 아이디어 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.