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