AES_vue > django
CryptoJS(vue) 에서 pycryptodomex(django)로 암호화 복호화 하는 과정을 정리
✨기본 사항
- 각기 다른 시스템의 라이브러리를 사용.
- AES의 CBC 모드를 기본으로 가정.
- CBC모드를 사용하기 위해서 필수 인자 3가지
- secret_key: 암호화 & 복호화를 위한 메인 키 (대칭키)
- iv: 암호화 & 복호화를 위한 서브 키
- data: 암호화를 하고 싶은 데이터
- vue에서 object를 통째로 암호화 하여 django로 전달하는 상황을 가정.
- 💡중요
- CryptoJS
- secret_key와 iv는 정해진 bytes 길이(long)를 지켜야 한다. ex) 16bytes, 32bytes 등. 사용자가 길이를 맞추어 사용하기 어렵다면, padding을 사용해 맞춘다.
- data는 길이가 상관없다. CryptoJS는 자동으로 padding하여 bytes길이를 맞추어주기 때문에!
- 다만 암호화를 하려면 string type의 데이터를 넣어야 한다.
- pycryptodomex
- secret_key와 iv, data는 정해진 bytes 길이(long)를 지켜야 한다. ex) 16bytes, 32bytes 등
- 이는 이번 포스팅에서는 신경쓸 부분이 아니지만, 나중에 django에서 암호화하여 vue로 보낼때 중요한 사항이다. pycryptodomex는 자동으로 data를 padding해주지 않기 때문에!