> 백엔드 개발 > PHP 튜토리얼 > SessionID와 이미지 확인 코드를 생성하는 PHP의 아이디어와 구현

SessionID와 이미지 확인 코드를 생성하는 PHP의 아이디어와 구현

高洛峰
풀어 주다: 2023-03-02 20:24:02
원래의
1625명이 탐색했습니다.

백엔드 로그인을 위해서는 인증코드가 필요하고, 프론트엔드에서 사용자 추적을 위해서는 SessionID가 필요합니다. 물론 기본 PHP는 세션을 연 후 SessionID를 가지게 되지만, 제가 직접 필요해서 저장할 수 있습니다. 그런 다음 시도해 보고 다음 함수를 구성했습니다.

/****** 세션 ID 생성 ******/
기본 아이디어는 현재 마이크로초 시간을 구한 후 난수를 생성하고, 현재 시간에 난수를 더해 암호화한 후 마지막으로 가로채는 것입니다. 필요한 길이
/*
함수 이름: create_sess_id()
함수 함수: 임의의 세션 ID 생성
매개변수: $len: 세션 문자열의 길이가 필요하며 기본값은 32자리입니다. , 16자리 이상
반환 값: 세션 ID 반환
heiyeluren 기능
*/
function create_sess_id($len=32)
{
// 제출된 내용을 확인하세요. length legal?
if( !is_numeric($len) || ($len>32) || ($len<16)) { return }
// 현재 시간의 마이크로초를 가져옵니다
list ($u, $s) = 폭발(' ', microtime());
$time = (float)$u (float)$s;
// 난수 생성
$rand_num = rand(100000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand();
// 세션 ID 생성
$sess_id = md5( md5($time).md5($rand_num) );
//지정된 필수 길이의 SessionID를 가로채기
$sess_id = substr($sess_id, 0, $len);
return $sess_id;
}


/****** 인증 코드 생성 ******/
아이디어: 이 아이디어는 비교적 간단합니다. 고유성과 임의성을 고려하면 인증 코드가 Session이기 때문입니다. ID SessionID는 완전히 고유한 것으로 간주되므로 내부의 문자열을 가로채기만 하면 됩니다.

/*
함수 이름: create_check_code()
함수 함수: 무작위 검사 코드 생성
매개변수: $len: 필요한 검사 코드 길이, 16자 이하여야 합니다. 자릿수, 기본값은 4자리
반환값 : 지정된 길이의 체크코드를 반환
Function heiyeluren
*/
function create_check_code($len=4)
{
if ( !is_numeric($len) || ($len>6) || ($len<1)) { return }

$check_code = substr(create_sess_id(), 16, $len ); 🎜 >return strtoupper($check_code);
}


/****** 인증코드 생성 사진 ******/

이것은 비교적 간단한 PHP 이미지 프로그래밍이므로 그림으로 만들었습니다. 그리고 단순함.

/*
함수 이름: create_check_image()
함수 함수: 검사 코드 이미지 생성
매개변수: $check_code: 검사 코드 문자열, 일반적으로 create_check_code() 함수에서 사용하는
반환 값: 이미지 반환
function heiyeluren
*/
function create_check_image( $check_code )
{
// 이미지 생성
$im = imagecreate( 65, 22);
$black = ImageColorAllocate($im, 0,0,0); // 배경색
$white = ImageColorAllocate($im, 255,255,255) // 전경색
$gray = ImageColorAllocate ($im, 200,200,200);
imagefill($im,68,30,$gray);

// 이미지에 4자리 정수 확인 코드를 그립니다.
imagestring($im, 5, 8, 3, $check_code, $white);
//간섭 픽셀 추가
for($i=0;$i<200;$i )
{
$randcolor = ImageColorallocate ($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()p , rand()0 , $randcolor)
}
/ / 출력 이미지
Header("Content-type: image/PNG");
ImagePNG($im)
ImageDestroy($im); create_check_image() 함수 참조 시 별도의 파일에 존재해야 한다는 점 주의하시기 바랍니다. 파일 헤더 출력 시 출력 형식이 이미지 형식이고, 다른 내용과 혼합되어 이미지가 표시되지 않기 때문입니다. 또한, 이미지 생성 기능을 변경할 수 있습니다. 예를 들어 색상을 변경하려는 경우 전경색과 배경색의 생성 위치를 변경하면 동시에 색상도 달라집니다. 체크 코드의 색상을 변경해야 합니다. 그렇지 않으면 배경과 체크 코드가 검은색으로 표시되지 않습니다. 재인쇄 시 출처를 밝혀주세요: SessionID와 이미지 확인 코드를 생성하는 PHP의 아이디어와 구현

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