当前位置:   article > 正文

工具按照功能点进行卡密设计指南-- 需求分析思路讲解nodeJS封装好工具类开箱即用

工具按照功能点进行卡密设计指南-- 需求分析思路讲解nodeJS封装好工具类开箱即用

卡密设计指南

背景

设计一个自动化脚本工具,其中集合多中类型的脚本,需要对单独的项目功能进行卡密操作。

环境

  • 语言:nodeJs
  • 环境:Windows

字典

  • 卡密:用于充值自动化脚本对应项目功能点的秘钥,由服务商生成,客户导入使用。
  • 项目功能点:每个脚本对应一个项目功能点,比如某音刷数据、某书刷数据。
  • 项目功能点数据:一个对象数组的数据结构,其中对象属性包含了功能点appName以及功能点到期时间

1. 细节分析

主要的考虑点有以下几点:

  • 项目功能点的唯一性
  • 每台机器的唯一性
  • 安全性(对称加密)

1.1 项目功能点的唯一性

自动化脚本工具需要的是对单一功能进行管控,所以这边设计了一个变量,为对象数组结构,方便扩展,由于功能点是已知的。

默认项目功能点数据,程序数据初始化用。

[{
   
    // 对应功能点名称
    appName:"app1",
    // 到期时间
   	expirationTime:"19710101",
}]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

1.2 机器唯一性

这边通过了nodeJS自带的os库,采取了机器的基本设置,以及MAC地址,以此作为唯一标识。

const os = require('os');
const {
    execSync } = require('child_process');

function getMachineUniqueInfo() {
   
    const networkInterfaces = os.networkInterfaces();
    let macAddress;
    for (const interfaceKey in networkInterfaces) {
   
        const networkInterface = networkInterfaces[interfaceKey];
        const interfaceInfo = networkInterface.find(info => !info.internal && info.mac !== '00:00:00:00:00:00');
        if (interfaceInfo) {
   
            macAddress = interfaceInfo.mac;
            break;
        }
    }

    const cpuInfo = os.cpus()[0].model;
    const arch = os.arch()
    const diskSerialNumber = execSync('wmic diskdrive get serialnumber').toString().split('\n'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/329383
推荐阅读
相关标签
  

闽ICP备14008679号