회원가입시 사용하는 랜덤 스트링 만들기 > PHP

본문 바로가기

사이트 내 전체검색

뒤로가기 PHP

회원가입시 사용하는 랜덤 스트링 만들기

페이지 정보

작성자 최고관리자 작성일 21-02-09 11:46 조회 5,834 댓글 0

본문

## GD로 글쓰기, 워터마크 정도로 검색해보세요. ##


많은 포탈 사이트에서 회원가입시 자동가입을 막기위해 사용되는 이미지 만들기
 폰트파일이 없는 경우는 첨부파일 링크로 가서 다운 받으십시요
 암호화 하는 부분은 공개할 수가 없어서 base 64로 encoding 하지만 사용하시는 암호화 모듈이 있다면 그것을 사용하면 될것이다.

 <?
 // indent rule
 // vi:ts=4 sts=4 sw=4

 ## 회원가입시 사용하는 랜덤 스트링 만들기
## 2005.03.17 오후 11:48:40 by Ulovem.com

 $buffer = base64_encode("abcd");
 echo "<img src='./test.html?par=$buffer'>";
 ?>

 ------- test.html ----
 <?php
 function showStrImg($buf = false , $size = 10 , $fontsize = 20, $height = 50){
                if ( ($size == false && $buf == false) || $buf == false ){
                                $rndstr = MakeRandString($size);
                                showStrImg(MakeRandString($size), $size , $fontsize, $height);
                                return md5($rndstr);
                                exit;
               
                } else {
                                $size = strlen($buf);
                }
               
                header("Content-type: image/jpeg");
               
                $im = imagecreate(ImageFontWidth($fontsize) * ($size * 3)+50, $height);
                $white = imagecolorallocate($im, 255, 255, 255);
                $black = imagecolorallocate($im, 0, 0, 0);
               
               
                for ( $i = 0 ; $i < $size; $i ++){
                                $angel = RandArray(array(45, -45));
                                imagettftext($im, $fontsize, $angel, ImageFontWidth($fontsize) * ($i * 3) +30, $height-$fontsize, $black, "./gulim.ttf",substr($buf, $i, 1));
                                imagegammacorrect ($im,RandNum(1,50),RandNum(1,50));
                }
               
                imagegif($im);
                imagedestroy($im);
               
               
 }

 function RandNum($start,$end){
                return mt_rand($start, $end);
 }

 function RandArray($arr){
                $seq = mt_rand(1, sizeof($arr));
                return $arr[$seq];
 }

 function MakeRandString($inLength=16){
                mt_srand( MakeSeed() );
                $newstring="";

                if( $inLength > 0){
                                while( strlen($newstring) < $inLength ){
                                                switch( mt_rand(2,3) ){
                                                case 1: $newstring.=chr(mt_rand(49,57)); break; // 0-9
                                                case 2: $newstring.=chr(mt_rand(65,90)); break; // A-Z
                                                case 3: $newstring.=chr(mt_rand(97,122)); break; // a-z
                                                }
                                }
                }
                return $newstring;
 }

 function MakeSeed(){
                $hash = md5(microtime());
                $loWord = substr($hash, -8);
                $seed = hexdec($loWord);
                $seed &= 0x7fffffff;
               
                return $seed;
 }
                                     
 showStrImg(base64_decode($_GET["par"]));

 ?>

출처 :
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=39015&sca=&sfl=wr_subject%7C%7Cwr_content&stx=showStrImg&sop=and

댓글목록 0

등록된 댓글이 없습니다.

Copyright © beautipia.co.kr. All rights reserved.

contact : webmaster@beautipia.co.kr

PC 버전으로 보기