diff --git a/examples/2018.01.28-asymmetric-enc-dec/app.js b/examples/2018.01.28-asymmetric-enc-dec/app.js index b024360..91a68b8 100644 --- a/examples/2018.01.28-asymmetric-enc-dec/app.js +++ b/examples/2018.01.28-asymmetric-enc-dec/app.js @@ -1,8 +1,21 @@ const utils = require('./utils'); const keys = require('./keys'); +const path = require('path'); +const fs = require('fs-extra'); const plainText = '你好,我是程序猿小卡'; -const crypted = utils.encrypt(plainText, keys.pubKey); -const decrypted = utils.decrypt(crypted, keys.privKey); -console.log(decrypted.toString()); // 你好,我是程序猿小卡 \ No newline at end of file +/** + * 新增两个通过 openssl 生成的密钥文件 + * 必须是1024位长度 使用其他长度报错 + * RSA_padding_add_PKCS1_OAEP_mgf1:data too large for key size + */ +(async function main() { + let pubKey = await fs.readFile(path.resolve(__dirname, './public_key.pem')); + let privKey = await fs.readFile(path.resolve(__dirname, './private_key.pem')); + + let crypted = utils.encrypt(plainText, pubKey.toString()); + let decrypted = utils.decrypt(crypted, privKey.toString()); + + console.log(decrypted.toString()); // 你好,我是程序员小卡 +})(); \ No newline at end of file diff --git a/examples/2018.01.28-asymmetric-enc-dec/private_key.pem b/examples/2018.01.28-asymmetric-enc-dec/private_key.pem new file mode 100644 index 0000000..566a0ca --- /dev/null +++ b/examples/2018.01.28-asymmetric-enc-dec/private_key.pem @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC7ikxFcifEdVZ7IxSvd65vUQKxxvYZRx+qSz0Cl1Xj+PwyT9hn +w4M6rglvbjgpQhQnnumY/KkmI7CCglXVNjOI9zRA/IfSv3juPTEFItJUcnfOtgnz +DgrzMvu9gP9nH45aD5mnZd+zWaK9BSJSuOk/D6rjLts8Iykv1jpQ/KYFPwIDAQAB +AoGAQdV0nNRL/X0rVKKl+krLIyyPA5VSguEizocG7cfuUM7wyUCaOSK7CHhbu5A3 +itQ1ewsf+aKIRmk05zuVofka8ZkOxfdpMgNlP1nuYD6VQHbm6ssPiZP64EX1W64G +djNnOhZjP1dR/JhEMB8tWZDdQOhwHMiTCWGMZZYXtC7aUdECQQDz05OZM2eTZkeu +5srHLVDLWrNTn6yZCnD4PA7ltyuR2uF3K/dziWaCPT6J8dblOnBKJteU0fvMiDPx +iT8KyM7LAkEAxOdPHQ6+k9s/25tpmEXibJytJ8T1HsIxFAdvuHqurjMnb3yOg2F+ +0s2fBnH42nvYnJmCA2TDv39G9EczHvKA3QJAAnaCqSuBwlVoJ/Yg2j408Ljr0s5s +GeenGHrS07Mz93c0i9Wf3ETpCivAM/iDaTFb7QPTbadpWbmOfMQcJOm+XQJAMKzh +wNQpRpHXqmkz5GG6RJFCuOcWlWD6EvJ3qsohLo0UvZmz/UR3vpL4MfawxwoAlU3Z +dw9M2KUVHEQRnh/ivQJAD+U1zCsmP6J3+gWZ/lzGE+8CrfxhjywSTtEAsC1GhAA8 +BnaJUPhgGM9r9N52NWb/WuhT1PgLZSlW0OhBX1/xJg== +-----END RSA PRIVATE KEY----- diff --git a/examples/2018.01.28-asymmetric-enc-dec/public_key.pem b/examples/2018.01.28-asymmetric-enc-dec/public_key.pem new file mode 100644 index 0000000..f98f2a6 --- /dev/null +++ b/examples/2018.01.28-asymmetric-enc-dec/public_key.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7ikxFcifEdVZ7IxSvd65vUQKx +xvYZRx+qSz0Cl1Xj+PwyT9hnw4M6rglvbjgpQhQnnumY/KkmI7CCglXVNjOI9zRA +/IfSv3juPTEFItJUcnfOtgnzDgrzMvu9gP9nH45aD5mnZd+zWaK9BSJSuOk/D6rj +Lts8Iykv1jpQ/KYFPwIDAQAB +-----END PUBLIC KEY----- diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8e2b7ca --- /dev/null +++ b/package-lock.json @@ -0,0 +1,36 @@ +{ + "name": "nodejs-learning-guide", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + } + } +} diff --git a/package.json b/package.json index 26a5b2d..8d11f14 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "concat-stream": "^1.6.0", "content-type": "^1.0.2", "express": "^4.15.3", + "fs-extra": "^5.0.0", "iconv-lite": "^0.4.17", "through": "^2.3.8" }