ssdd
This commit is contained in:
@@ -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");
|
||||
//跨域允许的请求方式
|
||||
|
||||
@@ -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,
|
||||
|
||||
BIN
项目合集/电商App/shop_backend/config/config.zip
Normal file
BIN
项目合集/电商App/shop_backend/config/config.zip
Normal file
Binary file not shown.
@@ -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'
|
||||
|
||||
@@ -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-----
|
||||
@@ -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-----
|
||||
@@ -1,4 +1,4 @@
|
||||
const mysql = require("mysql");
|
||||
const mysql = require('mysql2');
|
||||
const config = require("../config");
|
||||
|
||||
class Mysql {
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
console.log('公钥:\n',publicPem);
|
||||
console.log('私钥:\n', privatePem);
|
||||
@@ -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: '抱歉,公钥加密有误,请检查公钥'
|
||||
|
||||
53
项目合集/电商App/shop_backend/utils/rsa.back.js
Normal file
53
项目合集/电商App/shop_backend/utils/rsa.back.js
Normal 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();
|
||||
@@ -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'))
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user