This commit is contained in:
2025-02-18 08:31:38 +08:00
parent b6a71aa49b
commit cf1cc83547
12 changed files with 104 additions and 52 deletions

View File

@@ -10,7 +10,7 @@ var detailRouter = require('./routes/detail');
var app = express(); var app = express();
app.all("*", function (req, res, next) { app.all("*", function (req, res, next) {
// res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Origin", "*");
//允许的header类型 //允许的header类型
res.header("Access-Control-Allow-Headers", "content-type"); res.header("Access-Control-Allow-Headers", "content-type");
//跨域允许的请求方式 //跨域允许的请求方式

View File

@@ -40,13 +40,13 @@ const list = [
{ {
id: 1, id: 1,
title: '安徽新闻综合广播', 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: [] comment_list: []
}, },
{ {
id: 2, id: 2,
title: '安徽音乐广播', 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: [ comment_list: [
{ {
id: 1, id: 1,

Binary file not shown.

View File

@@ -3,8 +3,9 @@ module.exports = {
connectionLimit : 100, connectionLimit : 100,
host: 'localhost', host: 'localhost',
user: 'root', user: 'root',
password: 'lb714500', password: 'lb714500.',
database: 'shop' database: 'shop',
insecureAuth: true
}, },
jwt: 'Pc!0YQPA$57iksjA', jwt: 'Pc!0YQPA$57iksjA',
rsa: { rsa: {
@@ -14,7 +15,7 @@ module.exports = {
filter: { filter: {
login: '/user/login', login: '/user/login',
add: '/user/add', add: '/user/add',
// home: '/home/index', home: '/home/index',
// type: '/type/list', // type: '/type/list',
// banner: '/home/banner', // banner: '/home/banner',
// recommend: '/home/recommend' // recommend: '/home/recommend'

View File

@@ -1,15 +1,10 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN PRIVATE KEY-----
MIICXQIBAAKBgQC9eo8WIbWS5Yql06imlhrW0ZXhfaivPavdULvYLIxIKyUaOwMP MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAhKWVTpcHLH3lteaX
FrPuHqqBNGnYOpiPHAKL+zxk2j4u+6jhB6VK1SODccSLxIRxd0HmSDS+hBzYRf4v 3eHKMmSYPybgV/bUExDY10POx2ZQyI+xe6XQSYtaA9FJBkoZLfQLXjYkCNhPiDJo
Kc8BLlhMrYhnLmcxCc+PJIIa4DfCZnu8FfQlu/5LljjpYN9kHOpHAT+xpQIDAQAB saxd4wIDAQABAkBiOxFf2t5YJ3+2fmbWzP/k47QPiGW5HrQczmwWtkNqTBYNNxAx
AoGAaBRNSqvjkDg0K5iTGEZ1obBocv9STEhFAoGZXUpDGFVSwRDPQleHKHKB2A0R vCkwygm61wN95krzGETFtmpkYYb8SM9JbiLxAiEA5qt/CuOJfu+Uu2bnvBnDwpxC
Yuv05w9MutWbPA7Bf49PGaTYfstFmFuyB2TDpUTqstHfsNDnCwvKOnEU5wbsm8Rr U/IGuKZXlVKyvm2auHkCIQCTNn/UfFT0CojoNltBu49uwdNDwfptvQdaaj9UwsAq
yq4ParQk1Ba2ut8eHy2sDHNxPaC288tdsi6NnmM2iDe1UaECQQDnulXPZKGU5hLq OwIgAkCqfPC75wFv8mSO3sdhogTkoO08I5F8SXkFRdbMLAECICIaR/ajbtKx9hFF
zylu7q0+zNPkvVvsjLlM1Y4v02nqiSGJIiFsVsse2WkNNWV9VYkEIDKv1iCsQSxR NlK97nZL9HMH5smxNpjdcBpkmzutAiAvXVkx64QEtu/+UtHNo+zNR8ap5HB6a+ZM
8QFsurmpAkEA0VNVv0IPlfqA0jXaP/qMLasgp9hhNQ6fm3PkCd3tq8qZPNMd62hO sB4t3z2WcA==
5V209xZZrAAFuzLadAom4PrUNRFiGERNnQJBAMmQTX/euqY4EpBorlOuDMgphs7a -----END PRIVATE KEY-----
35C9P5lT0SBMtz6pFaChLY19WaV122j/303MDyilkTFeAoGTFygXiPO44DECQQDD
1/gtzRzP8WN9SS09Fqj4QVd4MhYgkeH6i18bbCvlwtPD+LHRgfHu3tFlK+AR8KNs
FZQVZToi3AqW7ACfO6hxAkB0L6aTsvrBXJtq1VdyBpWfkC9VdySUcBakd396iedU
BuEIpfsYfdw5xNUhZWhvDrZnDA32CphXHLNfCZUWYJ61
-----END RSA PRIVATE KEY-----

View File

@@ -1,6 +1,4 @@
-----BEGIN PUBLIC KEY----- -----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9eo8WIbWS5Yql06imlhrW0ZXh MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAISllU6XByx95bXml93hyjJkmD8m4Ff2
faivPavdULvYLIxIKyUaOwMPFrPuHqqBNGnYOpiPHAKL+zxk2j4u+6jhB6VK1SOD 1BMQ2NdDzsdmUMiPsXul0EmLWgPRSQZKGS30C142JAjYT4gyaLGsXeMCAwEAAQ==
ccSLxIRxd0HmSDS+hBzYRf4vKc8BLlhMrYhnLmcxCc+PJIIa4DfCZnu8FfQlu/5L
ljjpYN9kHOpHAT+xpQIDAQAB
-----END PUBLIC KEY----- -----END PUBLIC KEY-----

View File

@@ -1,4 +1,4 @@
const mysql = require("mysql"); const mysql = require('mysql2');
const config = require("../config"); const config = require("../config");
class Mysql { class Mysql {

View File

@@ -3,7 +3,8 @@
"version": "0.0.0", "version": "0.0.0",
"private": true, "private": true,
"scripts": { "scripts": {
"start": "node-dev ./bin/www", "dev": "npm run start",
"start": "node-dev ./bin/www ",
"doc": "apidoc -i routes/ -o doc/", "doc": "apidoc -i routes/ -o doc/",
"build": "pm2 start ./bin/www --watch --name shop -i max" "build": "pm2 start ./bin/www --watch --name shop -i max"
}, },
@@ -16,6 +17,7 @@
"md5": "^2.2.1", "md5": "^2.2.1",
"morgan": "~1.9.1", "morgan": "~1.9.1",
"mysql": "^2.17.1", "mysql": "^2.17.1",
"mysql2": "^3.12.0",
"node-rsa": "^1.0.7", "node-rsa": "^1.0.7",
"pug": "2.0.0-beta11" "pug": "2.0.0-beta11"
} }

View File

@@ -1,24 +1,11 @@
const db = require("../mysql"); var NodeRSA = require('node-rsa')
const rsa = require("../utils/rsa"); //1.创建RSA对象并指定 秘钥长度
var key = new NodeRSA({ b: 512 });
key.setOptions({ encryptionScheme: 'pkcs1' });//指定加密格式
// db.query({ //2.生成 公钥私钥,使用 pkcs8标准pem格式
// sql: 'select * from user', var publicPem = key.exportKey('pkcs8-public-pem');//制定输出格式
// data: [14] var privatePem = key.exportKey('pkcs8-private-pem');
// }).then(success => {
// console.log(success)
// }).catch( err => {
// console.log(err)
// })
// await db.query({ console.log('公钥:\n',publicPem);
// sql: 'select * from user', console.log('私钥:\n', privatePem);
// data: [14]
// })
var params = {
page: 1,
num: 4
}
var jiami = rsa.PublicKeyEncryption(params);
console.log(jiami)

View File

@@ -10,7 +10,9 @@ module.exports = {
if(req.headers.hasOwnProperty("data")) { if(req.headers.hasOwnProperty("data")) {
try { try {
req.headers.data = rsa.PrivateKeyDecryption(req.headers.data) 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() next()
} else { } else {
if(req.headers.hasOwnProperty("token")) { if(req.headers.hasOwnProperty("token")) {
@@ -32,6 +34,11 @@ module.exports = {
} }
} }
} catch (e) { } catch (e) {
console.log("--------");
console.log("e --------: ", e);
console.log("--------");
res.json({ res.json({
status: 500, status: 500,
message: '抱歉,公钥加密有误,请检查公钥' message: '抱歉,公钥加密有误,请检查公钥'

View File

@@ -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();

View File

@@ -7,6 +7,15 @@ class Rsa {
constructor() { constructor() {
this.private_key = this.readFiles(this.getFilePath(config.rsa.private_key)) this.private_key = this.readFiles(this.getFilePath(config.rsa.private_key))
this.public_key = this.readFiles(this.getFilePath(config.rsa.public_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) { PrivateKeyDecryption(text) {
return JSON.parse((new NodeRsa(this.private_key)).decrypt(text, 'utf8')) return JSON.parse(this.pri_rsa.decrypt(text, 'utf8'))
} }
/** /**