요구사항: 사용자가 성공적으로 로그인하면 Discuz 프로그램이 응답성 방식으로 로그인 자격 증명을 쿠키에 기록합니다. 쿠키가 알려져 있다면, 현재 로그인한 사용자의 사용자 ID를 어떻게 복호화하나요?
먼저, 서버에 로그인해서 확인해야 합니다/config/config_global.php다음 구성에는 두 가지 구성이 있습니다:
쿠키 접두사:$_config['쿠키']['쿠키프리'] 암호화 및 복호화 키:$_config['보안']['인증키']
이 사이트를 예로 들자면: $_config['cookie']['cookiepre'] = 'Mqd1_'; , 쿠키에서 :Mqd1_2132_saltkey와 Mqd1_2132_auth의 값을 확인하세요.
원리는 다음과 같습니다:
$authkey = "*********"; 이게 비밀 열쇠야. $_config['security']['authkey'] = config/config_global.php 파일 내 '*******'; 이게 바로 그거야, 네가 가진 걸 보면 있는 거야. $salt = $_COOKIE['Mqd1_2132_saltkey']; 이것은 discuz가 생성하는 난수입니다 $key = md5($authkey.$salt); 복호화 키 $info = uc_authcode($_COOKIE['Mqd1_2132_auth'], '디코드',$key);
그다음 $info을 출력해 보면 다음과 같은 결과가 나옵니다:
BF6B7E1DDD3DA431342F550EB8CE19E5 1
끝에 1 또는 다른 숫자가 있는데, 이는 사용자 ID를 나타내므로 사용자 정보를 얻고, 이 ID를 바탕으로 uCenter의 사용자 정보를 얻을 수 있었습니다. 복호화 방법을 알게 되면, C# 코드는 다음과 같습니다:
해당 정보를 프로그램에 입력하면 실행 결과는 다음과 같습니다:
프로그램 다운로드:
관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
|