/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해주지 않기 때문에!

AES django 적용

AES django 적용

django에 PyCryptodomex를 설치하여 적용

1
pip install pycryptodomex
  • 주의 사항

    1. PyCryptodome is a fork of PyCrypto

    2. For more information, see the homepage.를 클릭하면, pycryptodome의 문서로 이동하는데, 왜 그런건지 모르겠다. 아마 의존성?이 있어 그런건가 싶다.

AES vue 적용

AES Vue 적용

vue.js에 CryptoJS를 설치하여 진행

1
npm i crypto-js
  • 주의 사항
    1. AES에 사용되는 parameters는 모두 bytes 타입만 사용이 가능하다.
    2. 하여 대부분 utf-8로 encoding하여 사용 (이 부분은 아직 정확하게 이해하지 못했다.)

what is AES

AES 보안

보안 진단을 받아보니, 생각보다 API 통신은 해킹이 쉽다.

하여 보안에 신경써야 하는 경우, 기술들이 다양하게 있는데, 그 중 AES<Advanced Encryption Standard>를 간단히 알아보고 이후 적용하는 방법과 과정에 대하여 정리한다.

Overfitting

과적합(Overfitting)

잘 정리된 내용을 발견하였고 거기에 개인적인 경험을 추가하기 위해 정리하였습니다. (대부분 필사입니다.)

인공지능 모델링을 하다보면 항상 만나게 되는 과적합을 어떻게 해결해야하는지, 방법에 대하여 정리