/images/jg_02.jpg

AES vue > django 적용

AES_vue > django

CryptoJS(vue) 에서 pycryptodomex(django)로 암호화 복호화 하는 과정을 정리

✨기본 사항

  1. 각기 다른 시스템의 라이브러리를 사용.
  2. AES의 CBC 모드를 기본으로 가정.
  3. CBC모드를 사용하기 위해서 필수 인자 3가지
    1. secret_key: 암호화 & 복호화를 위한 메인 키 (대칭키)
    2. iv: 암호화 & 복호화를 위한 서브 키
    3. data: 암호화를 하고 싶은 데이터
  4. vue에서 object를 통째로 암호화 하여 django로 전달하는 상황을 가정.
  5. 💡중요
    • 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해주지 않기 때문에!