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

本文介绍了一个基于NodeJS的卡密设计指南,包括项目功能点的唯一性、机器唯一性和对称加密等关键点。通过详细的功能实现步骤,如读取项目功能数据、使能功能点及过期卡密处理,阐述了如何创建一个开箱即用的工具类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

卡密设计指南

背景

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

环境

  • 语言:nodeJs
  • 环境:Windows

字典

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

1. 细节分析

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

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

1.1 项目功能点的唯一性

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

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

[{
   
   
    // 对应功能点名称
    appName:"app1",
    // 到期时间
   	expirationTime:"19710101",
}]

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')[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Penk是个码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值