웹마스터 팁

이 스크립트를 사용하려면 다음과 같은 정보를 알고있어야 합니다.

- 생년월일
- 성별
- md5등으로 해시화 된 주민등록번호

<?php
$b_year = $_POST['b_year'];
$b_month = $_POST['b_month'];
$b_day = $_POST['b_day'];
$gender = $_POST['gender'];
$s_no_hash_str = $_POST['s_no_hash_str'];
$hash_type = $_POST['hash_type'];
// error messages
if(!$b_year){
    echo "* 생년을 입력하세요<br />";
}
if(!$b_month){
    echo "* 생월을 입력하세요<br />";
}
if(!$b_day){
    echo "* 생일을 입력하세요<br />";
}
if(!$gender){
    echo "* 성별을 선택하세요<br />";
}
if(!$s_no_hash_str){
    echo "* 해시화 된 주민등록 번호를 입력하세요.<br />";
}
if(!$hash_type){
    echo "* 해시 함수의 종류를 선택하세요<br />";
}

// 모든 값이 입력되었으면 처리 시작
if($b_year && $b_month && $b_day && $gender && $hash_type && $s_no_hash_str){

// 0로 패딩하기
$b_year = str_pad($b_year, 4, '19', STR_PAD_LEFT);
$b_month = str_pad($b_month, 2, '0', STR_PAD_LEFT);
$b_day = str_pad($b_day, 2, '0', STR_PAD_LEFT);
$b_year_det = substr($b_year,0,2);
$b_year = substr($b_year,2,2);

if($b_year_det == "18"){
    if($gender == "1"){
        $gender = "9";
    }
    else{
        $gender = "0";
    }
}
else if($b_year_det == "19"){
    if($gender == "1"){
        $gender = "1";
    }
    else{
        $gender = "2";
    }
}
else if($b_year_det == "20"){
    if($gender == "1"){
        $gender = "3";
    }
    else{
        $gender = "4";
    }
}

// 주번 2 처리
for($misc=0;$misc<=99999;$misc++){
    // 주번 2 0으로 패딩
    $misc = str_pad($misc, 5, '0', STR_PAD_LEFT); // pad left with 0's
    
    // 주번 1 이랑 주번 2이랑 잇기
    $s_no_1 = $b_year.$b_month.$b_day;
    $s_no_2 = $gender.$misc;
    
    // 주번 전체 처리
    $s_no_string = $s_no_1.$s_no_2.get_check_no($s_no_1.$s_no_2);
    
    // 해시화
    if($hash_type == "md5"){
        $s_no_hash = md5($s_no_string);
    }
    else if($hash_type == "sha1"){
        $s_no_hash = sha1($s_no_string);
    }

    // 해시 추가하실 수 있습니다 ~ 
    
    // 해시가 일치하면 루프를 브레이크처리하고 결과 출력
    if($s_no_hash == $s_no_hash_str){
        echo "
        결과: ".$s_no_string."(".$s_no_hash.")";
        break;
    }
    // 해시가 일치하지 않으면 현재 값 출력하고 컨티뉴 ~
    else{
        echo "처리중: ".$s_no_string."(".$s_no_hash.")<br />";
    }
}

}

// 주번 확인번호 처리 함수
function get_check_no($s_no){
    unset($total);
        
    for($i=0; $i<13; $i++){
        $s_no[$i] = intval($s_no[$i]); // convert to integer
    }
    
    // 주민등록번호 계산
    $total = $s_no[0]*2 + $s_no[1]*3 + $s_no[2]*4 + $s_no[3]*5 + $s_no[4]*6 + $s_no[5]*7 + $s_no[6]*8 + $s_no[7]*9 + $s_no[8]*2 + $s_no[9]*3 + $s_no[10]*4 + $s_no[11]*5;
    $total = $total%11;
    $check_no = 11-$total;
    
    // 확인 번호 계산
    if($check_no>9){
        $check_no = $check_no % 10;
    }
    
    return $check_no; // 결과 출력
}
?>


미리보기


어디까지나 학습용 소스입니다... 악용하면 개인정보보호법에 걸리니 조심하세요 ~


Coded by Kay(fallstoofast), flixey.com



제목 글쓴이 날짜
이미지 삽입후 이미지 위에 노란색 박스 사라지게하는 법 [5] dhseo 2008.05.28
웹페이지에 마우스 따라다니는 예쁜 시계를 넣자 [5] gosoo99 2008.04.08
메뉴에서 채팅방 띄우기 용도로 쓰는 스크립트 코아 코스튬 2011.01.30
XE 검색 속도 향상 팁(확장 변수 검색시) [5] 명드래곤 2011.02.26
[권한이 없습니다] 권한에 따른 다른 메시지 출력하기 [10] [1] 반도체맨 2008.10.03
상담/신청 (쓰기만 가능한 게시판) 만들기 [10] mmx900 2008.03.20
디자인 하시는 분에게 ~ 신기한 팁 (from IE) [2] 999 2011.02.23
관리자 아이디로 작성한 비밀글을 특정인이 볼수있도록 해주는 팁 [13] file Dreami 2009.04.03
[중복일수도...] Srl 생성의 비밀???;;? [1] RainDrop+ 2011.02.22
관리권한 가져도 댓글이 수정/삭제 안 되는 경우.. [4] sejin7940 2011.02.14
게시판모듈 글목록에서 분류명(카테고리)를 이미지로 표현하기 [4] nalireco 2011.01.06
해시로부터 주민등록번호 복호화 [2] fallstoofast 2008.03.12
IIS 7용 Rewrite fsfsdas 2011.02.20
nginx에서 대역폭 제한하기 fsfsdas 2011.02.20
MySQL db를 InnoDB로 바꾸기 (MyISAM to InnoDB) fsfsdas 2011.02.20
리눅스에서 디렉토리, 파일 용량 확인하기 fsfsdas 2011.02.20
우분투 charset을 euc-kr로 변경하기 fsfsdas 2011.02.20
우분투 10.04 LTS, 시스템 정보 보기 fsfsdas 2011.02.20
우분투 10.04 LTS, sendmail 설치 및 설정 fsfsdas 2011.02.20
우분투 10.04 LTS, SSH 사용자 접속 제한 fsfsdas 2011.02.20