728x90
반응형
- 정보통신망법, 개인정보보호법 등에 의하면 비밀번호는 단방향암호화(SHA256 등), 개인정보는 양방향암호화(AES256 등)를 하도록 되어 있습니다. 지금까지 작성한 예제는 이런 법에 맞지 않아서 서비스할 수 없겠네요. 여기에서는 비밀번호의 단방향 암호화를 구현해보도록 하겠습니다. Adonis 에서는 비밀번호 암호화에 더 좋다고 하는 bctypt를 제공하고 있지만, 이것이 법에 명시되어 있지는 않아서, SHA256 을 사용하겠습니다.
- 먼저, 기존 DB에 들어있던 사용자 정보를 모두 삭제합시다.
$ cd database $ sqlite development.sqlite SQLite version 3.15.0 2016-10-14 10:20:30 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from admins; 1|testid1|passwd1|nick1 2|testid2|passwd2|nick2 3|testid3|passwd3|nick3 4|testid4|passwd4|nick4 6|admin|dpeltms3|ADMIN sqlite> delete from admins; sqlite> select * from admins; sqlite> .quit
xyz/app/Models/Admin.js
에 crypto 모듈을 추가하고, setPassword 함수를 추가합니다.... const crypto = require('crypto') ... setPassword(password) { return crypto.createHash('sha256').update(password).digest('base64') } ...
- 이제, 관리자를 추가해보고, DB에서 비밀번호가 어떻게 들어가 있는지 확인해봅니다.
$ 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 * from admins; 8|myid|d49434a7e6f3220b6ec15bff84429934d519d0443d20ff46ff3a36e1fc50fc2d43c939d259042987162202dcbbc8788752ea79c02379064ab64363b069278c32|마이이이디 sqlite> .quit
비밀번호가 사람이 알아볼 수 없는 형태로 되어 있지요? 그러면 잘 된 것입니다. *^^*
728x90
반응형
'Programming > Javascript' 카테고리의 다른 글
(AdonisJs 4.0 Tutorial) 로그인/로그아웃 처리하기 (0) | 2017.10.25 |
---|---|
(AdonisJs 4.0 Tutorial) 개인정보 양방향암호화(AES256) 하기 (0) | 2017.10.24 |
(AdonisJs 4.0 Tutorial) 관리자 삭제하기 (0) | 2017.10.20 |
(AdonisJs 4.0 Tutorial) 관리자 수정하기 (0) | 2017.10.19 |
(AdonisJs 4.0 Tutorial) 관리자 비밀번호 변경하기 (0) | 2017.10.18 |
댓글