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

본문 바로가기
사이트 내 전체검색

PHP

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

페이지 정보

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

본문

## 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

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

  • 게시물이 없습니다.

접속자집계

오늘
1,777
어제
4,039
최대
6,642
전체
830,292
contact : webmaster@beautipia.co.kr
Copyright © beautipia.co.kr. All rights reserved.