yjryu / KERIS star
Stormen123 2023-12-12
231212 김성훈 관리자 암호화 추가
@371641eff41625aa61dcd4e170157694e2509aaa
client/views/pages/admin/login/Login.vue
--- client/views/pages/admin/login/Login.vue
+++ client/views/pages/admin/login/Login.vue
@@ -42,23 +42,23 @@
         //로그인
         login: function () {
             let vm = this;
-            // var iv = this.store.state.key.iv;
-            // var salt = this.store.state.key.salt;
-            // var passPhrase = this.store.state.key.ENC_KEY;
-            // var keySize = 128;
-            // var iterationCount = 1000;
-            // var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount });
+            var iv = this.store.state.key.iv;
+            var salt = this.store.state.key.salt;
+            var passPhrase = this.store.state.key.ENC_KEY;
+            var keySize = 128;
+            var iterationCount = 1000;
+            var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount });
 
-            // // var encrypted = CryptoJS.AES.encrypt(
-            // // this.mngrLogin.mngr_id = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
-            // // this.mngrLogin.mngr_pw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
-            // let encryptedMngrId = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
-            // let encryptedMngrPw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            // var encrypted = CryptoJS.AES.encrypt(
+            // this.mngrLogin.mngr_id = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            // this.mngrLogin.mngr_pw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            let encryptedMngrId = crypto.AES.encrypt(this.mngrLogin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            let encryptedMngrPw = crypto.AES.encrypt(this.mngrLogin.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
 
-            // var loginData = {
-            //     mngr_id: encryptedMngrId,
-            //     mngr_pw: encryptedMngrPw
-            // };
+            var loginData = {
+                mngr_id: encryptedMngrId,
+                mngr_pw: encryptedMngrPw
+            };
 
             axios({
                 
@@ -71,7 +71,7 @@
                     'Content-Type': 'application/json; charset=UTF-8'
                 },
 
-                data: vm.mngrLogin
+                data: loginData
             }).then(function (response) {
                 if (response.data == true) {
                     vm.$emit("updateIsLogin", true);
client/views/pages/admin/user/UserSelectList.vue
--- client/views/pages/admin/user/UserSelectList.vue
+++ client/views/pages/admin/user/UserSelectList.vue
@@ -422,18 +422,18 @@
 
             this.mngr.mngr_eml = this.email_id + '@' + this.email_domain;
 
-            // var iv = this.store.state.key.iv;
-            // var salt = this.store.state.key.salt;
-            // var passPhrase = this.store.state.key.ENC_KEY;
-            // var keySize = 128;
-            // var iterationCount = 1000;
-            // var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount });
+            var iv = this.store.state.key.iv;
+            var salt = this.store.state.key.salt;
+            var passPhrase = this.store.state.key.ENC_KEY;
+            var keySize = 128;
+            var iterationCount = 1000;
+            var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount });
 
 
-            // this.mngr.mngr_id = crypto.AES.encrypt(this.mngr.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
-            // this.mngr.mngr_pw = crypto.AES.encrypt(this.mngr.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
-            // this.mngr.mngr_nm = crypto.AES.encrypt(this.mngr.mngr_nm, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
-            // this.mngr.mngr_eml = crypto.AES.encrypt(this.mngr.mngr_eml, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            this.mngr.mngr_id = crypto.AES.encrypt(this.mngr.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            this.mngr.mngr_pw = crypto.AES.encrypt(this.mngr.mngr_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            this.mngr.mngr_nm = crypto.AES.encrypt(this.mngr.mngr_nm, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            this.mngr.mngr_eml = crypto.AES.encrypt(this.mngr.mngr_eml, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
             const vm = this;
             axios({
                 url: '/managerInsert.json',
client/views/pages/admin/user/UserSelectOne.vue
--- client/views/pages/admin/user/UserSelectOne.vue
+++ client/views/pages/admin/user/UserSelectOne.vue
@@ -102,6 +102,8 @@
 <script>
 import axios from 'axios';
 import { useRoute } from 'vue-router';
+import { useStore } from "vuex";
+import crypto from "crypto-js";
 
 export default {
     data() {
@@ -131,7 +133,8 @@
             showpwchange: false,
             presentPwd: null,
             changePwd : null,
-            chagePwdCheck : null,
+            changePwdCheck : null,
+            store: useStore(),
         };
     },
     methods: {
@@ -211,23 +214,40 @@
             if (vm.changePwd !== vm.changePwdCheck) {
                 alert("변경할 비밀번호와 비밀번호 확인이 일치하지 않습니다.");
                 return;  
-            } else if (vm.changePwd.length == 0 || vm.presentPwd.length == 0){
+            } else if (vm.changePwd == null || vm.presentPwd == null){
                 alert("빈값이 있습니다.")
                 return;
             }
             
+            var iv = this.store.state.key.iv;
+            var salt = this.store.state.key.salt;
+            var passPhrase = this.store.state.key.ENC_KEY;
+            var keySize = 128;
+            var iterationCount = 1000;
+            var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount });
+
+
+            let encryptedMngrId = crypto.AES.encrypt(this.admin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            let encryptedMngrPw = crypto.AES.encrypt(this.presentPwd, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+
+            let mngr = {
+                mngr_id: encryptedMngrId,
+                mngr_pw: encryptedMngrPw
+            };
             axios({
                 url: '/mngrCheckPresentPwd.json',
                 method: 'post',
                 headers: {
                     'Content-Type': 'application/json; charset=UTF-8',
                 },
-                data: { 'mngr_id': vm.admin.mngr_id, 'mngr_pw': vm.presentPwd }
+                data: mngr
             }).then(function (response) {
                 if(response.data == 1){
                     vm.changePassword()
                 } else {
                     alert("현재 비밀번호가 일치하지 않습니다.");
+                    vm.changePwd = null;
+                    vm.changePwdCheck = null;
                 }
             }).catch(function (error) {
                 console.log("checkPwd - error : ", error);
@@ -236,19 +256,36 @@
 
         changePassword: function() {
             const vm = this;
+
+            var iv = this.store.state.key.iv;
+            var salt = this.store.state.key.salt;
+            var passPhrase = this.store.state.key.ENC_KEY;
+            var keySize = 128;
+            var iterationCount = 1000;
+            var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount });
+
+
+            let encryptedMngrId = crypto.AES.encrypt(this.admin.mngr_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+            let encryptedMngrPw = crypto.AES.encrypt(this.changePwd, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString();
+
+            let mngr = {
+                mngr_id: encryptedMngrId,
+                mngr_pw: encryptedMngrPw
+            };
+
             axios({
                 url: '/mngrPwUpdate.json',
                 method: 'post',
                 headers: {
                     'Content-Type': 'application/json; charset=UTF-8',
                 },
-                data: { 'mngr_id': vm.admin.mngr_id, 'mngr_pw': vm.changePwd }
+                data: mngr
             }).then(function (response) {
                 if(response.data == 1){
                     alert('비밀번호 변경에 성공하였습니다.')
-                    vm.changePwd ='';
-                    vm.presentPwd = '';
-                    vm.changePwdCheck = '';
+                    vm.changePwd = null;
+                    vm.presentPwd = null;
+                    vm.changePwdCheck = null;
                     vm.closeModal()
                 } else {
                    alert('비밀번호 변경에 실패하였습니다.') 
Add a comment
List