sha256 관리자 비번 원하는 것으로 리셋 하기
[code]
<?php
include_once('./_common.php');
$admin_id = 'admin'; // 관리자 아이디
$admin_pass = sin_password('1111'); // 원 하는 비번으로 입력
if ($admin_id != $config['cf_admin'])
alert('관리자 id가 잘못 입력되었습니다. '.$config['cf_admin'].' 으로 수정하세요.', G5_URL);
sql_query(" update {$g5['member_table']} set mb_password = '$admin_pass' where mb_id = '$admin_id' ");
alert('관리자 비번이 변경되었습니다. 확인 후 이 파일은 반드시 삭제하세요.', G5_URL);
function sin_password($password) {
$algorithm = 'sha256';
$iterations = 12000;
$salt = base64_encode(random_bytes(16));
$hash = base64_encode(hash_pbkdf2($algorithm, $password, $salt, $iterations, 32, true));
return "$algorithm:$iterations:$salt:$hash";
}
?>
[/code]
/bbs/admin_change.php
이런식으로 파일을 만들고 위 내용을 붙여 넣기하고
해당 파일을 접속하면 관리자 비번을 리셋 할 수 있습니다.
최신 버전에 작동 하는 구조 입니다.
이전 버전에는 작동하지 않습니다.
sha256 비번 생성 하는 버전 부터 작동이 됩니다.
어느 싯점 인지는 모르지만.....
이전에 쓰던 코드가 안된다고 문의가 와서 변경해 봤습니다.
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 6개
sha256 관리자 비번 원하는 것으로 리셋 하기
@들레아빠 감사합니다.
감사합니다.
감사합니다.
config.php 의 설정에 따라 다르게 분기시켜야 합니다
아래는 config.php 내용중 암호화 설정 관련 내용입니다
// 암호화 함수 지정
// 사이트 운영 중 설정을 변경하면 로그인이 안되는 등의 문제가 발생합니다.
// 5.4 버전 이전에는 sql_password 이 사용됨, 5.4 버전부터 기본이 create_hash 로 변경
//define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password');
define('G5_STRING_ENCRYPT_FUNCTION', 'create_hash');
define('G5_MYSQL_PASSWORD_LENGTH', 41); // mysql password length 41, old_password 의 경우에는 16
이런 방법도 있습니다
https://www.happyjung.com/lecture/1677
@해피정 좋은 정보 감사합니다
다른분들 참고로 적용 하면 될 것 같습니다.