[PHP] 많은 포탈 사이트에서 회원가입시 자동가입을 막기위해
많은 포탈 사이트에서 회원가입시 자동가입을 막기위해 사용되는 이미지 만들기
폰트파일이 없는 경우는 첨부파일을 다운 받으십시요
(첨부파일있은곳 : [url]http://ulovem.com/board/zboard.php?id=StartPage_Info&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=94 [/url])
암호화 하는 부분은 공개할 수가 없어서 base 64로 encoding 하지만 사용하시는 암호화 모듈이 있다면 그것을 사용하면 될것이다.
gdshow.php
<?
// indent rule
// vi:ts=4 sts=4 sw=4
## 회원가입시 사용하는 랜덤 스트링 만들기
## 2005.03.17 오후 11:48:40 by Ulovem.com
$buffer = base64_encode("fjsadfjsalkjflk");
echo "<img src='./gdwrite2.php?par=$buffer'>";
?>
gdwrite2.php
<?php
// indent rule
// vi:ts=4 sts=4 sw=4
## 회원가입시 사용하는 랜덤 스트링
## 2005.03.17 오후 11:48:40 by Ulovem.com
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, "/usr/share/fonts/ko/TrueType/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"]));
?>
댓글 달기