

231212 김성훈 관리자 암호화 추가
@371641eff41625aa61dcd4e170157694e2509aaa
--- client/views/pages/admin/login/Login.vue
+++ client/views/pages/admin/login/Login.vue
... | ... | @@ -42,23 +42,23 @@ |
42 | 42 |
//로그인 |
43 | 43 |
login: function () { |
44 | 44 |
let vm = this; |
45 |
- // var iv = this.store.state.key.iv; |
|
46 |
- // var salt = this.store.state.key.salt; |
|
47 |
- // var passPhrase = this.store.state.key.ENC_KEY; |
|
48 |
- // var keySize = 128; |
|
49 |
- // var iterationCount = 1000; |
|
50 |
- // var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount }); |
|
45 |
+ var iv = this.store.state.key.iv; |
|
46 |
+ var salt = this.store.state.key.salt; |
|
47 |
+ var passPhrase = this.store.state.key.ENC_KEY; |
|
48 |
+ var keySize = 128; |
|
49 |
+ var iterationCount = 1000; |
|
50 |
+ var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount }); |
|
51 | 51 |
|
52 |
- // // var encrypted = CryptoJS.AES.encrypt( |
|
53 |
- // // this.mngrLogin.mngr_id = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
54 |
- // // this.mngrLogin.mngr_pw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
55 |
- // let encryptedMngrId = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
56 |
- // let encryptedMngrPw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
52 |
+ // var encrypted = CryptoJS.AES.encrypt( |
|
53 |
+ // this.mngrLogin.mngr_id = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
54 |
+ // this.mngrLogin.mngr_pw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
55 |
+ let encryptedMngrId = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
56 |
+ let encryptedMngrPw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
57 | 57 |
|
58 |
- // var loginData = { |
|
59 |
- // mngr_id: encryptedMngrId, |
|
60 |
- // mngr_pw: encryptedMngrPw |
|
61 |
- // }; |
|
58 |
+ var loginData = { |
|
59 |
+ mngr_id: encryptedMngrId, |
|
60 |
+ mngr_pw: encryptedMngrPw |
|
61 |
+ }; |
|
62 | 62 |
|
63 | 63 |
axios({ |
64 | 64 |
|
... | ... | @@ -71,7 +71,7 @@ |
71 | 71 |
'Content-Type': 'application/json; charset=UTF-8' |
72 | 72 |
}, |
73 | 73 |
|
74 |
- data: vm.mngrLogin |
|
74 |
+ data: loginData |
|
75 | 75 |
}).then(function (response) { |
76 | 76 |
if (response.data == true) { |
77 | 77 |
vm.$emit("updateIsLogin", true); |
--- client/views/pages/admin/user/UserSelectList.vue
+++ client/views/pages/admin/user/UserSelectList.vue
... | ... | @@ -422,18 +422,18 @@ |
422 | 422 |
|
423 | 423 |
this.mngr.mngr_eml = this.email_id + '@' + this.email_domain; |
424 | 424 |
|
425 |
- // var iv = this.store.state.key.iv; |
|
426 |
- // var salt = this.store.state.key.salt; |
|
427 |
- // var passPhrase = this.store.state.key.ENC_KEY; |
|
428 |
- // var keySize = 128; |
|
429 |
- // var iterationCount = 1000; |
|
430 |
- // var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount }); |
|
425 |
+ var iv = this.store.state.key.iv; |
|
426 |
+ var salt = this.store.state.key.salt; |
|
427 |
+ var passPhrase = this.store.state.key.ENC_KEY; |
|
428 |
+ var keySize = 128; |
|
429 |
+ var iterationCount = 1000; |
|
430 |
+ var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount }); |
|
431 | 431 |
|
432 | 432 |
|
433 |
- // this.mngr.mngr_id = crypto.AES.encrypt(this.mngr.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
434 |
- // this.mngr.mngr_pw = crypto.AES.encrypt(this.mngr.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
435 |
- // this.mngr.mngr_nm = crypto.AES.encrypt(this.mngr.mngr_nm, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
436 |
- // this.mngr.mngr_eml = crypto.AES.encrypt(this.mngr.mngr_eml, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
433 |
+ this.mngr.mngr_id = crypto.AES.encrypt(this.mngr.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
434 |
+ this.mngr.mngr_pw = crypto.AES.encrypt(this.mngr.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
435 |
+ this.mngr.mngr_nm = crypto.AES.encrypt(this.mngr.mngr_nm, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
436 |
+ this.mngr.mngr_eml = crypto.AES.encrypt(this.mngr.mngr_eml, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
437 | 437 |
const vm = this; |
438 | 438 |
axios({ |
439 | 439 |
url: '/managerInsert.json', |
--- client/views/pages/admin/user/UserSelectOne.vue
+++ client/views/pages/admin/user/UserSelectOne.vue
... | ... | @@ -102,6 +102,8 @@ |
102 | 102 |
<script> |
103 | 103 |
import axios from 'axios'; |
104 | 104 |
import { useRoute } from 'vue-router'; |
105 |
+import { useStore } from "vuex"; |
|
106 |
+import crypto from "crypto-js"; |
|
105 | 107 |
|
106 | 108 |
export default { |
107 | 109 |
data() { |
... | ... | @@ -131,7 +133,8 @@ |
131 | 133 |
showpwchange: false, |
132 | 134 |
presentPwd: null, |
133 | 135 |
changePwd : null, |
134 |
- chagePwdCheck : null, |
|
136 |
+ changePwdCheck : null, |
|
137 |
+ store: useStore(), |
|
135 | 138 |
}; |
136 | 139 |
}, |
137 | 140 |
methods: { |
... | ... | @@ -211,23 +214,40 @@ |
211 | 214 |
if (vm.changePwd !== vm.changePwdCheck) { |
212 | 215 |
alert("변경할 비밀번호와 비밀번호 확인이 일치하지 않습니다."); |
213 | 216 |
return; |
214 |
- } else if (vm.changePwd.length == 0 || vm.presentPwd.length == 0){ |
|
217 |
+ } else if (vm.changePwd == null || vm.presentPwd == null){ |
|
215 | 218 |
alert("빈값이 있습니다.") |
216 | 219 |
return; |
217 | 220 |
} |
218 | 221 |
|
222 |
+ var iv = this.store.state.key.iv; |
|
223 |
+ var salt = this.store.state.key.salt; |
|
224 |
+ var passPhrase = this.store.state.key.ENC_KEY; |
|
225 |
+ var keySize = 128; |
|
226 |
+ var iterationCount = 1000; |
|
227 |
+ var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount }); |
|
228 |
+ |
|
229 |
+ |
|
230 |
+ let encryptedMngrId = crypto.AES.encrypt(this.admin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
231 |
+ let encryptedMngrPw = crypto.AES.encrypt(this.presentPwd, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
232 |
+ |
|
233 |
+ let mngr = { |
|
234 |
+ mngr_id: encryptedMngrId, |
|
235 |
+ mngr_pw: encryptedMngrPw |
|
236 |
+ }; |
|
219 | 237 |
axios({ |
220 | 238 |
url: '/mngrCheckPresentPwd.json', |
221 | 239 |
method: 'post', |
222 | 240 |
headers: { |
223 | 241 |
'Content-Type': 'application/json; charset=UTF-8', |
224 | 242 |
}, |
225 |
- data: { 'mngr_id': vm.admin.mngr_id, 'mngr_pw': vm.presentPwd } |
|
243 |
+ data: mngr |
|
226 | 244 |
}).then(function (response) { |
227 | 245 |
if(response.data == 1){ |
228 | 246 |
vm.changePassword() |
229 | 247 |
} else { |
230 | 248 |
alert("현재 비밀번호가 일치하지 않습니다."); |
249 |
+ vm.changePwd = null; |
|
250 |
+ vm.changePwdCheck = null; |
|
231 | 251 |
} |
232 | 252 |
}).catch(function (error) { |
233 | 253 |
console.log("checkPwd - error : ", error); |
... | ... | @@ -236,19 +256,36 @@ |
236 | 256 |
|
237 | 257 |
changePassword: function() { |
238 | 258 |
const vm = this; |
259 |
+ |
|
260 |
+ var iv = this.store.state.key.iv; |
|
261 |
+ var salt = this.store.state.key.salt; |
|
262 |
+ var passPhrase = this.store.state.key.ENC_KEY; |
|
263 |
+ var keySize = 128; |
|
264 |
+ var iterationCount = 1000; |
|
265 |
+ var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount }); |
|
266 |
+ |
|
267 |
+ |
|
268 |
+ let encryptedMngrId = crypto.AES.encrypt(this.admin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
269 |
+ let encryptedMngrPw = crypto.AES.encrypt(this.changePwd, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); |
|
270 |
+ |
|
271 |
+ let mngr = { |
|
272 |
+ mngr_id: encryptedMngrId, |
|
273 |
+ mngr_pw: encryptedMngrPw |
|
274 |
+ }; |
|
275 |
+ |
|
239 | 276 |
axios({ |
240 | 277 |
url: '/mngrPwUpdate.json', |
241 | 278 |
method: 'post', |
242 | 279 |
headers: { |
243 | 280 |
'Content-Type': 'application/json; charset=UTF-8', |
244 | 281 |
}, |
245 |
- data: { 'mngr_id': vm.admin.mngr_id, 'mngr_pw': vm.changePwd } |
|
282 |
+ data: mngr |
|
246 | 283 |
}).then(function (response) { |
247 | 284 |
if(response.data == 1){ |
248 | 285 |
alert('비밀번호 변경에 성공하였습니다.') |
249 |
- vm.changePwd =''; |
|
250 |
- vm.presentPwd = ''; |
|
251 |
- vm.changePwdCheck = ''; |
|
286 |
+ vm.changePwd = null; |
|
287 |
+ vm.presentPwd = null; |
|
288 |
+ vm.changePwdCheck = null; |
|
252 | 289 |
vm.closeModal() |
253 | 290 |
} else { |
254 | 291 |
alert('비밀번호 변경에 실패하였습니다.') |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?