diff --git a/项目合集/在包河后端/app.js b/项目合集/在包河后端/app.js index 9052ecb5..78e60c77 100755 --- a/项目合集/在包河后端/app.js +++ b/项目合集/在包河后端/app.js @@ -10,7 +10,7 @@ var detailRouter = require('./routes/detail'); var app = express(); app.all("*", function (req, res, next) { - // res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Origin", "*"); //允许的header类型 res.header("Access-Control-Allow-Headers", "content-type"); //跨域允许的请求方式 diff --git a/项目合集/在包河后端/routes/index.js b/项目合集/在包河后端/routes/index.js index df6d2229..8703296c 100755 --- a/项目合集/在包河后端/routes/index.js +++ b/项目合集/在包河后端/routes/index.js @@ -40,13 +40,13 @@ const list = [ { id: 1, title: '安徽新闻综合广播', - play_url: 'https://lhttp-hw.qtfm.cn/live/4919/64k.mp3?app_id=web&ts=67a48ce9&sign=705831eba3a8ea2074db661d516d56c6', + play_url: 'https://manifest-gcp-us-east4-vop1.fastly.mux.com/mwtn4bTsPO00Qz3jZb701qBWsuPiKs1mZgFRp8xHyVYJVehgb72tQ2h4XqE390001IdsNHZxTrV3xBFfVlsl3yXhag/rendition.m3u8?cdn=cloudflare&expires=1739437200&skid=default&signature=NjdhZGI0OTBfNWNlMmJkYmU5NzA2YmI0NzdlYjdiZTE4MDdlYjk4YWEzNTdiN2QyYTNlNzQ0ZmIzZDIwZDBkMTA2NzQ2NDhhMg==&vsid=MkcG7J5VfKN5l4CZ58EvCqZxioR9ksmZvldmjbLQXdvRLCnOOzl2MSrK02ey00rXo8SEl9RfNCM5Y', comment_list: [] }, { id: 2, title: '安徽音乐广播', - play_url: 'https://lhttp-hw.qtfm.cn/live/1947/64k.mp3?app_id=web&ts=67a48d37&sign=ab362f4e8002dac0e2a4b6307e1d377b', + play_url: 'https://manifest-gcp-us-east4-vop1.fastly.mux.com/mwtn4bTsPO00Qz3jZb701qBWsuPiKs1mZgFRp8xHyVYJVehgb72tQ2h4XqE390001IdsNHZxTrV3xBFfVlsl3yXhag/rendition.m3u8?cdn=cloudflare&expires=1739437200&skid=default&signature=NjdhZGI0OTBfNWNlMmJkYmU5NzA2YmI0NzdlYjdiZTE4MDdlYjk4YWEzNTdiN2QyYTNlNzQ0ZmIzZDIwZDBkMTA2NzQ2NDhhMg==&vsid=MkcG7J5VfKN5l4CZ58EvCqZxioR9ksmZvldmjbLQXdvRLCnOOzl2MSrK02ey00rXo8SEl9RfNCM5Yhttps://manifest-gcp-us-east4-vop1.fastly.mux.com/mwtn4bTsPO00Qz3jZb701qBWsuPiKs1mZgFRp8xHyVYJVehgb72tQ2h4XqE390001IdsNHZxTrV3xBFfVlsl3yXhag/rendition.m3u8?cdn=cloudflare&expires=1739437200&skid=default&signature=NjdhZGI0OTBfNWNlMmJkYmU5NzA2YmI0NzdlYjdiZTE4MDdlYjk4YWEzNTdiN2QyYTNlNzQ0ZmIzZDIwZDBkMTA2NzQ2NDhhMg==&vsid=MkcG7J5VfKN5l4CZ58EvCqZxioR9ksmZvldmjbLQXdvRLCnOOzl2MSrK02ey00rXo8SEl9RfNCM5Y', comment_list: [ { id: 1, diff --git a/项目合集/电商App/shop_backend/config/config.zip b/项目合集/电商App/shop_backend/config/config.zip new file mode 100644 index 00000000..daecf8c5 Binary files /dev/null and b/项目合集/电商App/shop_backend/config/config.zip differ diff --git a/项目合集/电商App/shop_backend/config/index.js b/项目合集/电商App/shop_backend/config/index.js index 0f576ee4..f29cab70 100644 --- a/项目合集/电商App/shop_backend/config/index.js +++ b/项目合集/电商App/shop_backend/config/index.js @@ -3,8 +3,9 @@ module.exports = { connectionLimit : 100, host: 'localhost', user: 'root', - password: 'lb714500', - database: 'shop' + password: 'lb714500.', + database: 'shop', + insecureAuth: true }, jwt: 'Pc!0YQPA$57iksjA', rsa: { @@ -14,7 +15,7 @@ module.exports = { filter: { login: '/user/login', add: '/user/add', - // home: '/home/index', + home: '/home/index', // type: '/type/list', // banner: '/home/banner', // recommend: '/home/recommend' diff --git a/项目合集/电商App/shop_backend/config/private_key.pem b/项目合集/电商App/shop_backend/config/private_key.pem index 0bae89dc..8a986eb3 100644 --- a/项目合集/电商App/shop_backend/config/private_key.pem +++ b/项目合集/电商App/shop_backend/config/private_key.pem @@ -1,15 +1,10 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQC9eo8WIbWS5Yql06imlhrW0ZXhfaivPavdULvYLIxIKyUaOwMP -FrPuHqqBNGnYOpiPHAKL+zxk2j4u+6jhB6VK1SODccSLxIRxd0HmSDS+hBzYRf4v -Kc8BLlhMrYhnLmcxCc+PJIIa4DfCZnu8FfQlu/5LljjpYN9kHOpHAT+xpQIDAQAB -AoGAaBRNSqvjkDg0K5iTGEZ1obBocv9STEhFAoGZXUpDGFVSwRDPQleHKHKB2A0R -Yuv05w9MutWbPA7Bf49PGaTYfstFmFuyB2TDpUTqstHfsNDnCwvKOnEU5wbsm8Rr -yq4ParQk1Ba2ut8eHy2sDHNxPaC288tdsi6NnmM2iDe1UaECQQDnulXPZKGU5hLq -zylu7q0+zNPkvVvsjLlM1Y4v02nqiSGJIiFsVsse2WkNNWV9VYkEIDKv1iCsQSxR -8QFsurmpAkEA0VNVv0IPlfqA0jXaP/qMLasgp9hhNQ6fm3PkCd3tq8qZPNMd62hO -5V209xZZrAAFuzLadAom4PrUNRFiGERNnQJBAMmQTX/euqY4EpBorlOuDMgphs7a -35C9P5lT0SBMtz6pFaChLY19WaV122j/303MDyilkTFeAoGTFygXiPO44DECQQDD -1/gtzRzP8WN9SS09Fqj4QVd4MhYgkeH6i18bbCvlwtPD+LHRgfHu3tFlK+AR8KNs -FZQVZToi3AqW7ACfO6hxAkB0L6aTsvrBXJtq1VdyBpWfkC9VdySUcBakd396iedU -BuEIpfsYfdw5xNUhZWhvDrZnDA32CphXHLNfCZUWYJ61 ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAhKWVTpcHLH3lteaX +3eHKMmSYPybgV/bUExDY10POx2ZQyI+xe6XQSYtaA9FJBkoZLfQLXjYkCNhPiDJo +saxd4wIDAQABAkBiOxFf2t5YJ3+2fmbWzP/k47QPiGW5HrQczmwWtkNqTBYNNxAx +vCkwygm61wN95krzGETFtmpkYYb8SM9JbiLxAiEA5qt/CuOJfu+Uu2bnvBnDwpxC +U/IGuKZXlVKyvm2auHkCIQCTNn/UfFT0CojoNltBu49uwdNDwfptvQdaaj9UwsAq +OwIgAkCqfPC75wFv8mSO3sdhogTkoO08I5F8SXkFRdbMLAECICIaR/ajbtKx9hFF +NlK97nZL9HMH5smxNpjdcBpkmzutAiAvXVkx64QEtu/+UtHNo+zNR8ap5HB6a+ZM +sB4t3z2WcA== +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/项目合集/电商App/shop_backend/config/public_key.pem b/项目合集/电商App/shop_backend/config/public_key.pem index bd81ea0d..cc33b11b 100644 --- a/项目合集/电商App/shop_backend/config/public_key.pem +++ b/项目合集/电商App/shop_backend/config/public_key.pem @@ -1,6 +1,4 @@ -----BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9eo8WIbWS5Yql06imlhrW0ZXh -faivPavdULvYLIxIKyUaOwMPFrPuHqqBNGnYOpiPHAKL+zxk2j4u+6jhB6VK1SOD -ccSLxIRxd0HmSDS+hBzYRf4vKc8BLlhMrYhnLmcxCc+PJIIa4DfCZnu8FfQlu/5L -ljjpYN9kHOpHAT+xpQIDAQAB ------END PUBLIC KEY----- +MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAISllU6XByx95bXml93hyjJkmD8m4Ff2 +1BMQ2NdDzsdmUMiPsXul0EmLWgPRSQZKGS30C142JAjYT4gyaLGsXeMCAwEAAQ== +-----END PUBLIC KEY----- \ No newline at end of file diff --git a/项目合集/电商App/shop_backend/mysql/index.js b/项目合集/电商App/shop_backend/mysql/index.js index 20266b68..210b20db 100644 --- a/项目合集/电商App/shop_backend/mysql/index.js +++ b/项目合集/电商App/shop_backend/mysql/index.js @@ -1,4 +1,4 @@ -const mysql = require("mysql"); +const mysql = require('mysql2'); const config = require("../config"); class Mysql { diff --git a/项目合集/电商App/shop_backend/package.json b/项目合集/电商App/shop_backend/package.json index 765ce442..20774619 100644 --- a/项目合集/电商App/shop_backend/package.json +++ b/项目合集/电商App/shop_backend/package.json @@ -3,7 +3,8 @@ "version": "0.0.0", "private": true, "scripts": { - "start": "node-dev ./bin/www", + "dev": "npm run start", + "start": "node-dev ./bin/www ", "doc": "apidoc -i routes/ -o doc/", "build": "pm2 start ./bin/www --watch --name shop -i max" }, @@ -16,6 +17,7 @@ "md5": "^2.2.1", "morgan": "~1.9.1", "mysql": "^2.17.1", + "mysql2": "^3.12.0", "node-rsa": "^1.0.7", "pug": "2.0.0-beta11" } diff --git a/项目合集/电商App/shop_backend/test/index.js b/项目合集/电商App/shop_backend/test/index.js index 40e74c4f..d05d2148 100644 --- a/项目合集/电商App/shop_backend/test/index.js +++ b/项目合集/电商App/shop_backend/test/index.js @@ -1,24 +1,11 @@ -const db = require("../mysql"); -const rsa = require("../utils/rsa"); +var NodeRSA = require('node-rsa') + //1.创建RSA对象,并指定 秘钥长度 +var key = new NodeRSA({ b: 512 }); +key.setOptions({ encryptionScheme: 'pkcs1' });//指定加密格式 -// db.query({ -// sql: 'select * from user', -// data: [14] -// }).then(success => { -// console.log(success) -// }).catch( err => { -// console.log(err) -// }) + //2.生成 公钥私钥,使用 pkcs8标准,pem格式 +var publicPem = key.exportKey('pkcs8-public-pem');//制定输出格式 +var privatePem = key.exportKey('pkcs8-private-pem'); -// await db.query({ -// sql: 'select * from user', -// data: [14] -// }) - -var params = { - page: 1, - num: 4 -} - -var jiami = rsa.PublicKeyEncryption(params); -console.log(jiami) \ No newline at end of file +console.log('公钥:\n',publicPem); +console.log('私钥:\n', privatePem); \ No newline at end of file diff --git a/项目合集/电商App/shop_backend/utils/Validator.js b/项目合集/电商App/shop_backend/utils/Validator.js index de32cbd8..90e6ee55 100644 --- a/项目合集/电商App/shop_backend/utils/Validator.js +++ b/项目合集/电商App/shop_backend/utils/Validator.js @@ -10,7 +10,9 @@ module.exports = { if(req.headers.hasOwnProperty("data")) { try { req.headers.data = rsa.PrivateKeyDecryption(req.headers.data) - if(req.url == config.filter.login || req.url == config.filter.add) { + if(req.url == config.filter.login || req.url == config.filter.add + || req.url == config.filter.home + ) { next() } else { if(req.headers.hasOwnProperty("token")) { @@ -32,6 +34,11 @@ module.exports = { } } } catch (e) { + + console.log("--------"); + console.log("e --------: ", e); + console.log("--------"); + res.json({ status: 500, message: '抱歉,公钥加密有误,请检查公钥' diff --git a/项目合集/电商App/shop_backend/utils/rsa.back.js b/项目合集/电商App/shop_backend/utils/rsa.back.js new file mode 100644 index 00000000..0bc8a241 --- /dev/null +++ b/项目合集/电商App/shop_backend/utils/rsa.back.js @@ -0,0 +1,53 @@ +const NodeRsa = require("node-rsa"); +const fs = require("fs"); +const path = require("path"); +const config = require("../config"); + +class Rsa { + constructor() { + this.private_key = this.readFiles(this.getFilePath(config.rsa.private_key)) + this.public_key = this.readFiles(this.getFilePath(config.rsa.public_key)) + } + + + // 公钥加密 + PublicKeyEncryption(text) { + return (new NodeRsa(this.public_key)).encrypt(JSON.stringify(text), 'base64') + } + + // 公钥解密 + PublicKeyDecryption(text) { + return JSON.parse((new NodeRsa(this.public_key)).decryptPublic(text, 'utf8')) + } + + + // 私钥加密 + PrivateKeyEncryption(text) { + return (new NodeRsa(this.private_key)).encryptPrivate(JSON.stringify(text), 'base64') + } + + // 私钥解密 + PrivateKeyDecryption(text) { + return JSON.parse((new NodeRsa(this.private_key)).decrypt(text, 'utf8')) + } + + /** + * 获取path.join文件地址 + * @param paths + * @returns {string} + */ + getFilePath(paths) { + return path.join(__dirname, paths) + } + + /** + * 读取文件数据 + * @param path + * @returns {*} + */ + readFiles(path) { + return fs.readFileSync(path).toString() + } +} + +module.exports = new Rsa(); diff --git a/项目合集/电商App/shop_backend/utils/rsa.js b/项目合集/电商App/shop_backend/utils/rsa.js index 0bc8a241..0152371f 100644 --- a/项目合集/电商App/shop_backend/utils/rsa.js +++ b/项目合集/电商App/shop_backend/utils/rsa.js @@ -7,6 +7,15 @@ class Rsa { constructor() { this.private_key = this.readFiles(this.getFilePath(config.rsa.private_key)) this.public_key = this.readFiles(this.getFilePath(config.rsa.public_key)) + + this.pri_rsa = new NodeRsa(this.private_key,'pkcs8-private-pem') + this.pri_rsa.setOptions({ encryptionScheme: 'pkcs1' }) + this.pri_rsa.setOptions({ environment: "browser" }); + + this.pub_rsa = new NodeRsa(this.public_key,'pkcs8-public-pem') + this.pub_rsa.setOptions({ encryptionScheme: 'pkcs1' }) + this.pub_rsa.setOptions({ environment: "browser" }); + } @@ -28,7 +37,7 @@ class Rsa { // 私钥解密 PrivateKeyDecryption(text) { - return JSON.parse((new NodeRsa(this.private_key)).decrypt(text, 'utf8')) + return JSON.parse(this.pri_rsa.decrypt(text, 'utf8')) } /**