ASP classic에서 HMAC사용하기

서세윤·2025년 3월 28일

이번 단기 프로젝트로 ASP를 사용해 암호화를 해야할 일이 생겼다.

내가 헤더를 넘겨주기 위해서 해야하는 암호화는 HMAC
풀어보면
Hash-based Message Authentication Code
해시 베이스로만든 메세지 보안코드란 뜻이다.

굉장히 유감스럽게도 나는 ASP
ASP 중에서도 클래식..
물론 ASP에선 지원하지 않는다

그래서 openssl을 사용하기로 했다...

그런데, 뭐가 문제인지 파악은 힘들지만 어쨋거나 예상하는 결과값이랑 너무 상이했다..
openssl을 사용한 HMAC에선 HMAC으로 디코딩 됬지만 문제는 내가 암호화 보내는곳에서는 디코드가 안된다는 문제였다.
API 보내주는 업체는 자바 언어로 예시를 보내줫지만,,, 여기서 뭔가 차이가 있다는걸 그냥 직감적으로 느끼고 고민하다가 결국
python을 통해서 암호화를 진행하기로 했다

pthton에서 사용한 명령어는 단 1줄 (들여쓰기5줄)

message = f"{nonce}-{timestamp}"
signature = hmac.new(
    client_secret.encode("utf-8"),
    message.encode("utf-8"),
    hashlib.sha256
).digest()

참고로 HMAC한 뒤 값은 바이너리로 들어오기때문에 base64가 국룰이다.
그렇기 때문에 base64로 인코딩 후 print를 한 뒤 asp에서 해당값을 가져왔다.

그렇게 하니 문제가 해결되었다

파이썬 사용하기로 한 결정은 단 한줄이지만, 이것저것 테스트하다보니 3일이 훌쩍 지났다...

혹여나 HMAC을 openssl통해 하려면, openssl로 디코드를 똑같이 해야할듯하다..

내가 openssl을 잘못사용한걸수도 있지만.. 그냥 마음편하게 파이썬을 추천한다..

profile
개잡부..

0개의 댓글