{"id":128,"date":"2025-07-16T15:02:04","date_gmt":"2025-07-16T06:02:04","guid":{"rendered":"http:\/\/34.64.61.65\/?p=128"},"modified":"2025-07-16T15:02:04","modified_gmt":"2025-07-16T06:02:04","slug":"node_%ec%95%94%ed%98%b8%ed%99%94_%ec%84%a4%ec%a0%95","status":"publish","type":"post","link":"https:\/\/hed-g.me\/?p=128","title":{"rendered":"[Node]_\uc554\ud638\ud654_\uc124\uc815"},"content":{"rendered":"\n<h2 class=\"wp-block-heading is-style-text-subtitle is-style-text-subtitle--1\">Node.js\uc5d0\uc11c \ub370\uc774\ud130 \uc554\ud638\ud654(Encryption) \uc27d\uac8c \uad6c\ud604\ud558\uae30 \ud83d\udca1<\/h2>\n\n\n\n<p>\ub370\uc774\ud130 \uc804\uc1a1 \uc2dc \uc554\ud638\ud654 \uc694\uccad\uc774 \ub9ce\uc544\uc9c0\ub294 \uc694\uc998, Node.js\uc5d0\uc11c <code>crypto-js<\/code>\ub97c \uc774\uc6a9\ud55c \ub370\uc774\ud130 \uc554\ud638\ud654 \ubc29\ubc95\uc744 \uc815\ub9ac\ud588\uc74c.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udce6 1. <code>crypto-js<\/code> \uc124\uce58 \ubc0f \uc900\ube44<\/h3>\n\n\n\n<p><code>crypto-js<\/code>\ub294 JavaScript\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc554\ud638\ud654\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc784.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uc124\uce58 \uba85\ub839\uc5b4<\/strong>:<br><pre><code class=\"language-bash\">npm i -d crypto-js<\/code><\/pre><br><\/li>\n\n\n\n<li><strong>TypeScript \uc0ac\uc6a9 \uc2dc \ucd94\uac00 \uc124\uce58<\/strong>:<br><pre><code class=\"language-bash\">npm i --save-dev @types\/crypto-js<\/code><\/pre><br><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd11 2. \uc554\ud638\ud654\/\ubcf5\ud638\ud654 \ubaa8\ub4c8 \uc124\uc815<\/h3>\n\n\n\n<p><code>crypto-js<\/code>\ub97c \ud65c\uc6a9\ud558\uc5ec \uc554\ud638\ud654 \ubc0f \ubcf5\ud638\ud654 \uae30\ub2a5\uc744 \ub2f4\ub2f9\ud558\ub294 \ubaa8\ub4c8\uc744 \uad6c\uc131\ud588\uc74c.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"use strict\";\n\nlet CryptoJS = require(\"crypto-js\");\nlet encryptMode = true; \/\/ \uc554\ud638\ud654 \ubaa8\ub4dc \ud65c\uc131\ud654 \uc5ec\ubd80\n\n\/\/ \ub370\uc774\ud130 \uc554\ud638\ud654 \ud568\uc218\nexports.encrypt = (text) =&gt; {\n  if (encryptMode) {\n    return CryptoJS.AES.encrypt(text, global.encryptionKey).toString();\n  } else {\n    return text;\n  }\n};\n\n\/\/ \ub370\uc774\ud130 \ubcf5\ud638\ud654 \ud568\uc218\nexports.decrypt = (value) =&gt; {\n  if (encryptMode) {\n    return CryptoJS.AES.decrypt(value, global.encryptionKey).toString(CryptoJS.enc.Utf8);\n  } else {\n    return value;\n  }\n};<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>global.encryptionKey<\/code>: \uc554\ud638\ud654\uc5d0 \uc0ac\uc6a9\ub420 \ud0a4 \uac12. \uc774 \ud0a4\ub294 \ubcf4\uc548\uc0c1 \uc548\uc804\ud558\uac8c \uad00\ub9ac\ud574\uc57c \ud568.<\/li>\n\n\n\n<li><code>encryptMode<\/code>: \uc554\ud638\ud654 \uae30\ub2a5\uc744 \ud65c\uc131\ud654\/\ube44\ud65c\uc131\ud654\ud558\ub294 \ud50c\ub798\uadf8.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd12 3. \ub370\uc774\ud130 \uc554\ud638\ud654 \uc801\uc6a9<\/h3>\n\n\n\n<p>\uc704\uc5d0\uc11c \uc124\uc815\ud55c \ubaa8\ub4c8\uc744 \ubd88\ub7ec\uc640 \uc2e4\uc81c \ub370\uc774\ud130\ub97c \uc554\ud638\ud654\ud558\ub294 \uc608\uc2dc\uc784.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const crypto = require(\".\/crypto\"); \/\/ \uc704\uc5d0\uc11c \uc791\uc131\ud55c \uc554\ud638\ud654 \ubaa8\ub4c8 \ubd88\ub7ec\uc624\uae30\n\n\/\/ \uc554\ud638\ud654\ud560 \ub370\uc774\ud130\nconst originalData = \"\uc554\ud638\ud654\ud560 \ub370\uc774\ud130\";\n\n\/\/ \ub370\uc774\ud130 \uc554\ud638\ud654\nconst encryptedData = crypto.encrypt(originalData);\nconsole.log(\"\uc554\ud638\ud654\ub41c \ub370\uc774\ud130:\", encryptedData);\n\n\/\/ \ub370\uc774\ud130 \ubcf5\ud638\ud654\nconst decryptedData = crypto.decrypt(encryptedData);\nconsole.log(\"\ubcf5\ud638\ud654\ub41c \ub370\uc774\ud130:\", decryptedData);<\/code><\/pre>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub97c \ud1b5\ud574 \ub370\uc774\ud130\ub97c \uc548\uc804\ud558\uac8c \uc554\ud638\ud654\ud558\uace0 \ubcf5\ud638\ud654\ud560 \uc218 \uc788\uc74c. Node.js \ubc31\uc5d4\ub4dc\uc5d0\uc11c \ud2b9\uc815 \ub370\uc774\ud130\ub97c \uc554\ud638\ud654\ud558\uace0, \ud504\ub860\ud2b8\uc5d4\ub4dc(<code>Angular<\/code> \ub4f1)\uc5d0\uc11c\ub294 \uc554\ud638\ud654\ub41c \ub370\uc774\ud130\ub97c \ubcf5\ud638\ud654\ud558\uc5ec \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc81c\ub300\ub85c \ucd9c\ub825\ub418\ub3c4\ub85d \ud65c\uc6a9\ud560 \uc218 \uc788\uc74c.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js\uc5d0\uc11c \ub370\uc774\ud130 \uc554\ud638\ud654(Encryption) \uc27d\uac8c \uad6c\ud604\ud558\uae30 \ud83d\udca1 \ub370\uc774\ud130 \uc804\uc1a1 \uc2dc \uc554\ud638\ud654 \uc694\uccad\uc774 \ub9ce\uc544\uc9c0\ub294 \uc694\uc998, Node.js\uc5d0\uc11c crypto-js\ub97c \uc774\uc6a9\ud55c \ub370\uc774\ud130 \uc554\ud638\ud654 \ubc29\ubc95\uc744 \uc815\ub9ac\ud588\uc74c. \ud83d\udce6 1. crypto-js \uc124\uce58 \ubc0f \uc900\ube44 crypto-js\ub294 JavaScript\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc554\ud638\ud654\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc784. \ud83d\udd11 2. \uc554\ud638\ud654\/\ubcf5\ud638\ud654 \ubaa8\ub4c8 \uc124\uc815 crypto-js\ub97c \ud65c\uc6a9\ud558\uc5ec \uc554\ud638\ud654 \ubc0f \ubcf5\ud638\ud654 \uae30\ub2a5\uc744 \ub2f4\ub2f9\ud558\ub294 \ubaa8\ub4c8\uc744 \uad6c\uc131\ud588\uc74c. \ud83d\udd12 3. \ub370\uc774\ud130 \uc554\ud638\ud654 \uc801\uc6a9 \uc704\uc5d0\uc11c \uc124\uc815\ud55c \ubaa8\ub4c8\uc744 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49],"tags":[118,119],"class_list":["post-128","post","type-post","status-publish","format-standard","hentry","category-node-js","tag-node","tag-nodejs"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=128"}],"version-history":[{"count":2,"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts\/128\/revisions"}],"predecessor-version":[{"id":130,"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts\/128\/revisions\/130"}],"wp:attachment":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}