>  기사  >  백엔드 개발  >  PHP 그래픽 및 이미지 처리에서 인증 코드를 생성하는 방법은 무엇입니까?

PHP 그래픽 및 이미지 처리에서 인증 코드를 생성하는 방법은 무엇입니까?

PHPz
PHPz앞으로
2016-07-29 08:39:532331검색

이 글의 내용은 PHP 그래픽과 이미지 처리에서 인증코드를 생성하는 방법을 소개하는 것인가요? 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

인증 코드는 점점 더 인터넷에서 없어서는 안 될 요소가 되었습니다. 여러분은 PHP의 GD 라이브러리를 사용하여 인증 코드를 생성할 수 있다는 것을 알고 계시는지 궁금합니다.

먼저 사용해야 할 몇 가지 기능을 소개합니다.

1.imagesetpixel()

이 함수는 픽셀을 그릴 수 있는 기능으로 인증코드에서는 "Noise"라고 합니다. 단순히 유물. 인증코드의 점은 이 기능을 통해 생성된다는 사실을 기억하셨는지 모르겠습니다.

2.str_shuffle()

이것을 사용하여 문자열을 뒤섞은 다음 substr()을 사용하여 주어진 숫자를 가로챕니다. 의 숫자로 임의의 문자열을 생성할 수 있습니다.

예:

<?php

$img = imagecreatetruecolor(100, 50);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
imagefill($img, 0, 0, $white);
//生成随机的验证码
$code = make(5);
imagestring($img, 5, 10, 10, $code, $black);
//加入噪点干扰
for ($i = 0; $i < 300; $i++) {
    imagesetpixel($img, rand(0, 100), rand(0, 100), $black);
    imagesetpixel($img, rand(0, 100), rand(0, 100), $green);
}
//加入线段干扰
for ($n = 0; $n <= 1; $n++) {
    imageline($img, 0, rand(0, 40), 100, rand(0, 40), $black);
    imageline($img, 0, rand(0, 40), 100, rand(0, 40), $white);
}
//输出验证码
header("content-type: image/png");
imagepng($img);
//销毁图片
imagedestroy($img);
//生产随机验证码的函数
function make($length)
{
    $code = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
    return substr(str_shuffle($code), 0, $length);
}

렌더링:

                                                 

요약: 위 내용은 이 글의 전체 내용입니다. 모두의 공부.

PHP 그래픽 및 이미지 처리에서 인증 코드를 생성하는 방법은 무엇입니까?

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제