AES를 통해 암, 복호화를 진행하고 있었는데 복호화를 하던 도중 아래의 에러 메시지를 마주했다.
Input length must be multiple of 16 when decrypting with padded cipher
(복호화를 진행할 때는 길이는 16의 배수여야 한다.)
대충 예상하기로는 길이가 안 맞다거나, 알고리즘이 다르거나라고 생각했다.
인터넷을 찾아보니 대표적인 발생 원인은 아래와 같다.
1. 암호화 후 다른 방식으로 또 암호화를 한 경우.
즉 AES로 암호화 하고 BASE64로 한번 더 암호화 했다면 BASE64 디코딩부터 해야 한다.
-> 나의 경우는 이중 암호화는 없었기에 위 상황은 아니었다.
2. 애초에 암호화가 되어있지 않은 경우
암호화를 해놓은 데이터인 줄 알았지만 알고보니 암호화가 되어있지 않은 경우.
파일 복호화를 진행하는 데 예전에 만들어놓은 첫 번째 파일이 암호화가 되지 않은 평문으로 저장되어 있어서 처음부터 에러를 뱉어낸 것이었다.
해당 파일을 지우고 암호화 된 파일로만 테스트를 돌렸을 때 정상적으로 복호화가 진행된 것을 확인할 수 있었다.
반응형
'오류해결' 카테고리의 다른 글
Docker 컨테이너를 사용하면서 만난 네트워크 불일치 문제(nginx) (0) | 2025.01.05 |
---|---|
MySQL을 사용하면서 마주했던 시간 반올림 문제 (1) | 2024.12.14 |
mysql.cj.jdbc.Driver에 빨간글씨가 뜨는 문제 (1) | 2024.09.22 |
스프링 시큐리티에서 인증 후 CSRF 토큰 갱신 문제 (0) | 2024.08.07 |