- 정보통신망법, 개인정보보호법 등에 의하면 비밀번호는 단방향암호화(SHA256 등), 개인정보는 양방향암호화(AES256 등)를 하도록 되어 있습니다. 지금까지 작성한 예제는 이런 법에 맞지 않아서 서비스할 수 없겠네요. 여기에서는 비밀번호의 단방향 암호화를 구현해보도록 하겠습니다.
- 먼저,
xyz/config/bootstrap.js
파일을 아래처럼 수정합니다.module.exports.bootstrap = function(cb) { // It's very important to trigger this callback method when you are finished // with the bootstrap! (otherwise your server will never lift, since it's waiting on the bootstrap) cb(); };
xyz/app/Model/Admin.js
에 crypto 모듈을 추가하고, setPassword 함수를 추가합니다.... const crypto = require('crypto') ... beforeCreate: function (values, cb) { values.password = crypto.createHash('sha256').update(values.password).digest('base64'); console.log(values); // 관리자 추가시 비밀번호 sha256 확인용 cb(); }, beforeUpdate: function (values, cb) { values.password = crypto.createHash('sha256').update(values.password).digest('base64'); console.log(values); // 비밀번호 변경시 sha256 확인용 cb(); }, ...
- 이제, 관리자를 추가해보고, DB에서 비밀번호가 어떻게 들어가 있는지 확인해봅니다.
... { userid: 'user1', password: 'a1HUMd9dfxQcvs7M957fPdhhw7QGnwsRZho+76y7qRg=', nick: '이순신' } { password: 'huUBSWWGYTEqngs1VY2E9sbT2nl/VSqWV/4FWMpAze8=' } [ { userid: 'user1', password: 'huUBSWWGYTEqngs1VY2E9sbT2nl/VSqWV/4FWMpAze8=', nick: '이순신', createdAt: '2016-11-09T06:48:18.710Z', updatedAt: '2016-11-09T06:48:42.896Z', id: 193 } ] ...
비밀번호가 사람이 알아볼 수 없는 형태로 되어 있지요? 그러면 잘 된 것입니다. *^^*
댓글 없음:
댓글 쓰기