웹마스터 팁

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

- 생년월일
- 성별
- 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



제목 글쓴이 날짜
필드값의 유효성을 검사하는 함수 아이쿠 2002.10.18
E-mail 추출기에 걸리지 않게 E-mail 링크하기 [2] 아이쿠 2002.10.18
단축키로 페이지이동 [17] 아벨라 2002.10.18
숫자 세자리마다 컴마(,) 찍어주기 [1] 행복한고니 2002.10.20
IFRAME을 드래그해서 크롬리스처럼 사용하기 [16] 멀대 2002.10.21
노래방 에 보면 나오는 글씨 같은 소스 臥龍先生 2002.10.27
원하는 부분에 문서나 이미지 불러들이기 디아릭스 2002.10.30
여러개의 창을 동시에 열고 ~~함목~~에 닫기 디아릭스 2002.10.30
붙여넣기 및 마우스 우측버튼 금지.. [3] 민이 2002.10.31
하이퍼링크 점선 테두리 없애기 [9] 레드 2002.10.31
글씨 하이퍼링크시 밑줄 없에기 [8] 이솔렛 2002.10.31
[자작] select 폼 태그 html로 허접하게나마 꾸며보기 [18] zero 2002.11.05
엔지오같은 메뉴 만들기 #1 - 수정판 [6] Eccen 2002.11.05
링크 포커스 없애기 3탄 [10] 멀대 2002.11.05
방문자가 특정부분 텍스트크기 바꿀수 있게 (확대/축소) [2] 디아릭스 2002.11.05
[re] 엔지오같은 메뉴 만들기 #2 -> 레이어배치 팁! //ⓦⓞⓞⓡⓨ님참고 [3] Aracing™ 2003.01.10
엔지오같은 메뉴 만들기 #2 - Error 수정판 -_-;; [13] Eccen 2002.11.12
고정된 배경이미지는 싫다면서... [9] 디아릭스 2002.11.12
윈도우 할아버지 나타나게 하기 [11] 행복한고니 2002.11.14
레이어를 원하는 곳에 고정하기입니다. [7] 아벨라 2002.11.14