웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
해시로부터 주민등록번호 복호화
2008.03.12 22:38
이 스크립트를 사용하려면 다음과 같은 정보를 알고있어야 합니다.
- 생년월일
- 성별
- md5등으로 해시화 된 주민등록번호
미리보기
어디까지나 학습용 소스입니다... 악용하면 개인정보보호법에 걸리니 조심하세요 ~
Coded by Kay(fallstoofast), flixey.com
- 생년월일
- 성별
- 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
댓글 2
제목 | 글쓴이 | 날짜 |
---|---|---|
[PHP 동영상강의] 49. 만년달력 제작해보기 [1] | 서기 | 2007.08.08 |
[PHP 동영상강의] 50. 자바스크립트로 풀다운 메뉴제작 [2] | 서기 | 2007.08.08 |
[PHP 동영상강의] 51. db와 연동된 다중 셀렉트 제작하기 [7] | 서기 | 2007.08.08 |
[zbXE 동영상강좌] 1. zbXE 설치하기 [2] | 서기 | 2007.08.16 |
[zbXE 동영상강좌] 2. 포토샵에서 레이아웃 만들기 [12] | 서기 | 2007.08.16 |
[zbXE 동영상강좌] 3. 레이아웃 완성하기 [13] | 서기 | 2007.08.16 |
[PDF 제작하기 동영상강좌] 1. 기본환경 설정 [1] | 서기 | 2007.08.18 |
[PDF 제작하기 동영상강좌] 2. Hello PDF | 서기 | 2007.08.18 |
[PDF 제작하기 동영상강좌] 3. 기존의 PDF파일 불러오기 [2] | 서기 | 2007.08.18 |
간단한 칠판 모양 게시판 [9] | SoukoZ | 2007.08.19 |
포인트부여시 ...회원로그인 [2] | 구본순 | 2007.08.28 |
관리자모드 - 관리자그룹만 모든 회원리스트보기 [2] | 이지혜609 | 2007.10.23 |
php에서 exif소스이용하기 [5] | 최만순279 | 2007.11.18 |
웹 계정에서 지워지지 않는 폴더 및 파일 삭제하는 방법 [3] | Rising.kr | 2008.01.24 |
OGIT STUDY 1 | OGIT | 2008.02.01 |
OGIT STUDY 2 [1] | OGIT | 2008.02.01 |
OGIT STUDY 3 [1] | OGIT | 2008.02.01 |
웹페이지 미리보기 snapshot 활용하기 [2] | 유창화 | 2008.02.15 |
FLV 사이트 다운로더 소스 | fallstoofast | 2008.03.07 |
해시로부터 주민등록번호 복호화 [2] | fallstoofast | 2008.03.12 |
흠좀무.. 하기사 브루트포싱이니까 안될게 어딨나여.. --;