내가 사용할 비밀번호가 해킹되었는지 확인
아래 코드를 사용하시면,
회원가입이나 비밀번호 변경 전 내 비밀번호가 해킹되었는지 알 수 있습니다.
<?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 "이 비밀번호는 안전합니다.";
}?>
댓글 8개
저 API가 믿을만한 사람이 운영하는건가요?
뭐 이건 해킹 해주세요 하는거죠
달랑 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)처럼 자판에서 순서대로 입력된 문자가 있는지 (구현 방법 다양 - 생략)
- 숫자, 영문(대소문자), 특수문자 등 얼마나 조합되어 입력되었는지
등등을 검사해주는 방법이죠.
대충 이 정도만 검사해도 충분할 것 같지 않나요?
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4417 | ||
| 2694 | 2개월 전 | 193 | ||
| 2693 | 2개월 전 | 151 | ||
| 2692 | 2개월 전 | 160 | ||
| 2691 | 2개월 전 | 176 | ||
| 2690 | 2개월 전 | 327 | ||
| 2689 | 2개월 전 | 238 | ||
| 2688 |
|
2개월 전 | 442 | |
| 2687 | 2개월 전 | 294 | ||
| 2686 |
선택과집중
|
2개월 전 | 331 | |
| 2685 | 2개월 전 | 292 | ||
| 2684 | 2개월 전 | 352 | ||
| 2683 | 2개월 전 | 483 | ||
| 2682 | 3개월 전 | 279 | ||
| 2681 | 3개월 전 | 305 | ||
| 2680 |
선택과집중
|
3개월 전 | 278 | |
| 2679 | 3개월 전 | 333 | ||
| 2678 |
|
3개월 전 | 430 | |
| 2677 |
|
3개월 전 | 504 | |
| 2676 | 3개월 전 | 329 | ||
| 2675 | 3개월 전 | 307 | ||
| 2674 |
선택과집중
|
3개월 전 | 481 | |
| 2673 |
|
3개월 전 | 323 | |
| 2672 | 3개월 전 | 337 | ||
| 2671 | 3개월 전 | 285 | ||
| 2670 | 3개월 전 | 261 | ||
| 2669 | 3개월 전 | 374 | ||
| 2668 | 3개월 전 | 291 | ||
| 2667 |
선택과집중
|
3개월 전 | 486 | |
| 2666 |
선택과집중
|
3개월 전 | 472 | |
| 2665 |
선택과집중
|
3개월 전 | 409 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기