2010-06-24 5 views
0

알림 서명을 확인 :내가 ankoder.com 다음과 같은 설명을 제공하는 사람들로부터 콜백에 대한 서명의 유효성을 검사해야합니다 (PHP)

그것의 Base64로 인코딩 된 HMAC-SHA1 다이제스트의 URL 이스케이프 문자열 귀하 개인 키 및 URL 이스케이프 처리되지 않은 메시지

$passkey = urlencode(base64_encode(hash_hmac('sha1', urldecode($str), $private_key, true))); 

그들은 다음과 같은 루비 예

encoded_signature = CGI.escape Base64.encode64(HMAC::SHA1::digest(private_key, CGI.unescape(message))).strip 

나는이 샘플 데이터에 내가 콜백에서 반환했지만 동일한 서명을 받고 있지 않다 실행을 제공한다. PHP로 Ruby 코드를 복제하려면 어떻게해야합니까?

문제는 후행 공백이 전송되었습니다.

답변

2

귀하의 PHP 코드가 Ruby 코드와 일치합니다. 문제는 다른 곳에서 발생해야합니다.

키가 올 바르고 메시지가 올바르게 구문 분석되는지 (urldecode, json_decode) 확인하십시오.

+0

아직 해결 방법을 찾지 못했지만 오류가 입력 문자열에 있으며 결과적으로이 대답을 수락한다고 확신합니다. – Gazler