[PHP] 많은 포탈 사이트에서 회원가입시 자동가입을 막기위해

tripler의 이미지

많은 포탈 사이트에서 회원가입시 자동가입을 막기위해 사용되는 이미지 만들기
폰트파일이 없는 경우는 첨부파일을 다운 받으십시요
(첨부파일있은곳 : [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"]));

?>

Forums: 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.