웹/jwt

[jwt] Unable to determine a suitable MAC or Signature algorithm for the specified key using available heuristics: either the key size is too weak be used with available algorithms, or the key size is unavailable (e.g. if using a PKCS11 or HSM (Hardware ..

Emil :) 2024. 1. 10. 15:48
728x90
반응형

문제 사항


jwt를 활용한 로그인 개발을 진행 중인데, 위와 같은 에러가 발생했다.

원인 분석


이 에러는 특별히 어려운 점은 없다. 에러 구문을 그대로 읽어보면, secret key가 너무 짧기 때문이라고 한다.

따라서, jwt secret key를 길게 설정해주면 끝난다.

해결 방법


평문 -> Base64 변환


기존엔 평문을 Jasypt로 변환시켜서 넣어놨는데, 이 평문이 너무 짧아서였다. 해당 포스트에 따르면, 키의 길이는 최소 512bits(약 64글자)로 설정해놓는 것을 권장하고 있다.

에러 해결하는 김에 2중 암호화를 하는게 더 좋을 것 같아서 base64로 한번 감싸기로 했다.

https://www.convertstring.com/ko/EncodeDecode/Base64Encode 

 

Base64로 인코딩 - 온라인 Base64로 인코더

 

www.convertstring.com

여기서 평문을 base64로 변경해주자.

Base64 -> Jasypt 변환


Jasypt에 대한 설명은 이미 다른 블로그에 더 자세하고 친절하게 나와있으니 참고하자.

public한 공간에 올려도 안전하도록 암호화된 문구로 설정해주는 아주 좋은 암호화 도구다.

https://velog.io/@jinny-l/spring-jasypt-encrypt-yml-and-store-encryption-key-as-environment-variable

 

[Spring] Jasypt로 yml 파일 암호화 및 암호화 키를 환경변수로 저장하는 방법

💬 들어가기 전에 팀 프로젝트를 하면서 협업을 하면서 관리해야 하는 yml 파일이 늘어나며 yml 파일 관리의 필요성과 중요성을 느꼈다. 지금까지 코드스쿼드 팀 미션을 4번 진행하면서 yml 파일

velog.io

키값을 요렇게 바꿔줬다.

그리고 실행해보면..

발급성공!

 

 

구독 및 하트는 정보 포스팅 제작에 큰 힘이됩니다♡

728x90
반응형