내가 사용할 비밀번호가 해킹되었는지 확인 > 그누보드5 팁자료실

그누보드5 팁자료실

내가 사용할 비밀번호가 해킹되었는지 확인 정보

내가 사용할 비밀번호가 해킹되었는지 확인

본문

아래 코드를 사용하시면,

회원가입이나 비밀번호 변경 전 내 비밀번호가 해킹되었는지 알 수 있습니다.

 

<?php

if(!function_exists("is_hacked_password")) {
    function is_hacked_password($pw) {
        // get first 8 characters from hashed password
        $prefix = substr(sha1($pw), 0, 8); // 해시 후 처음 8자리만 가져옴

 

        // get hashed table API (free)
        $url = "https://exts.kr/api.hackedpw.json?prefix=" . $prefix;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $response = json_decode(curl_exec($ch));

 

        // is it hacked?
        if($response->success == true) {
            // return $response->data->count;   // 유출된 횟수를 가져올 때
            return $response->data->hacked;     // 참 또는 거짓을 가져올 때
        } else {
            return "unknown";
        }
    }
}

 

$password = "1234";  // 판단할 비밀번호 입력
$hacked = is_hacked_password($password);
if($hacked == true) {
    echo "이 비밀번호는 해킹되었습니다. 다른 비밀번호를 사용하세요.";
} else {
    echo "이 비밀번호는 안전합니다.";
}

?>

추천
0

댓글 8개

이런 걸 팁이라고 올려놓긴 좀 뭐하지 않나요?개인 사이트에 내가 쓸 비밀번호를 보내는 건데
뭐 이건 해킹 해주세요 하는거죠
해시가 되어있어서 원래의 문자는 복원이 되지 않고, 해시된 것 마저도 앞부분 8자리만 확인하기 때문에 비밀번호는 보내지 않습니다.
팁이 아닌 것 같으면 다른 대안을 남기는 것이 보기 좋겠네요.

달랑 substr(sha1($pw), 0, 8) 결과만 전송해 한번이라도 유출된 비밀번호인지 확인하는 방법으로 괜찮은데 말이죠.
만약 해시 일부값 전송도 불안하다면 직접 구축하는 방법도 있습니다.

한 곳 소개합니다.
- https://haveibeenpwned.com/Passwords
> https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/
* 기타 생략

페이지 하단 제공되는 파일들을 보면 아시겠지만, 문제는 용량이 무척 크다는 것입니다. 대략 10GB.
단순한 웹 호스팅 사용자면 사용이 힘들겠죠?
DB 무제한이라 하더라도 약 10GB인데 호스팅사에서 허용을 할지도 문제겠고요.
구축을 해도 효율적인 조회 처리가 기다리고 있겠네요. (개인적으로 배보다 배꼽이 큰 것 같습니다.)

어차피 회원 가입 시 한 번, 회원 정보(비밀번호) 변경 시 한 번 사용으로
사용 빈도가 낮은데도 불구하고 외부 서비스 이용이 찝찝하다, 직접 구축도 힘들다,
그래도 뭔가 안전한 비밀번호인지 확인하고 싶다면
구관이 명관이라고 비록 올드하지만 유용한 비밀번호 검사 방법을 추천합니다.

- 너무 짧게 입력되었는지 (긴 문자열은 괜찮습니다. 다른 이야기는 생략)
- 1111, aaaa처럼 지정 개수 이상 동일한 문자가 입력되었는지
- 1234(4321), abcd(dcba)처럼 처럼 지정 개수 이상 순차적으로 입력된 문자가 있는지
- qwer(rewq), poiu(uiop)처럼 자판에서 순서대로 입력된 문자가 있는지 (구현 방법 다양 - 생략)
- 숫자, 영문(대소문자), 특수문자 등 얼마나 조합되어 입력되었는지
등등을 검사해주는 방법이죠.

대충 이 정도만 검사해도 충분할 것 같지 않나요?
전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT