2016-11-07

Adonis Tutorial : 개인정보 양방향암호화(AES256) 하기


  • 이 예제에는 개인정보 데이터가 없긴 하지만, 별명(Nick)을 개인정보라 간주하고 암호화를 진행해보겠습니다.
  • Adonis 에서는 데이터 암호화를 위해서 Encryption 모듈을 제공하고 있습니다.
  • 데이터를 암호화하고 다시 풀려면, Key 가 있어야 합니다. 이 Key 를 .env 파일에 APP_KEY 로 이미 정의되어 있습니다.
  • bootstrap/app.js
    ...
     
    const providers = [
      ...
      'adonis-framework/providers/EncryptionProvider'
      ...
    ]
     
    ...
     
    const aliases = {
      ...
      Encryption : 'Adonis/Src/Encryption'
      ...
    }
     
    ...
  • xyz/app/Model/Admin.js 에 다음을 추가한다.
    const Encryption = use('Encryption')
     
    ...
     
      getNick(nick) {
        return Encryption.decrypt(nick)
      }
     
      setNick(nick) {
        return Encryption.encrypt(nick)
      }
     
    ...
  • DB의 내용을 모두 삭제한 후에, 관리자를 추가해봅니다. 그리고, DB에서 Nick 이 암호화되어 있는지도 봅시다.
    $ cd database
    $ sqlite3 development.sqlite
    SQLite version 3.7.9 2011-11-01 00:52:41
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> select nick from admins;
    eyJpdiI6IkoxVWhqL2w5V1F4eU5iS2xWSk9ZZUE9PSIsInZhbHVlIjoiWmhuSmJLOWZJb3ZXOWNZM0tHaG1lUT09IiwibWFjIjoiNzMzOGUxNDkzMGJjMGVjNDhlM2NiOGMwZjlkZjdiNDY4NDkxODFmOWRkNTlmZjk1NzczMTBkYTgxNjMyM2QyYSJ9
    sqlite> .quit
    제대로 암호화되어서 무슨 내용인지 알아볼 수 없네요. ^^;

댓글 없음:

댓글 쓰기