在paygOPS中解码和编码令牌

问题描述

我有一个程序可以根据下面指定的脚本创建

值的编码

通过在代码的后3位屏蔽掩码来将值编码 “起始代码”中的值。这是通过将值添加到 如果结果值超过“起始代码”的后三位 999,然后从该值中减去1000。例如,如果代码 是“ 123456 789”,并且要编码的值是50,结果代码 其值编码为“ 123456 839”。解码通过 将“起始码”基数(最后3位)减去基数 (最后3位数字)的接收到的代码。例如,如果收到 代码是123456829,基数是829。从829减去789可得出 40是值。如果获得的值为负,则为1000 需要添加

在设备上解码代码

  1. 从输入代码中解码值。
  2. 通过按照“值的编码”中的步骤将值编码到起始代码中来生成“基本代码” 部分
  3. 通过“代码生成函数”将“基本代码”传递X次,X是最后一次计数+ 30,每次迭代: 3.1。将结果代码中的“代码库”替换为“编码的代码库”。例如,如果从步骤3得到的代码是“ 234567 890”,则最终代码将为“ 234567 839”(如果值为 编码为50,底数为789,如上例所示) 3.2。如果当前X严格高于上一个计数,则如果它们匹配,我们会将结果代码与输入代码进行比较。如果它 匹配,则代码有效,我们返回值。如果不是,我们 继续迭代
  4. 如果到达循环末尾且未找到匹配项,则该代码无效(已经使用或正确无效)。

到目前为止,我已经设法根据第一段创建了一段代码,但未能理解第二段。

let code  = 123456;
let base  = 789;
let units = 50;
let originalUnits=0;
//units = 1000;
let maxBase=1000;
console.log("Default: "+code.toString()+base);
let token = encodetoken(base,units,code);

//token = "123456383";
//token="123456967";
console.log("Token: "+token);

let decodedBase = decodetoken(token,base);
console.log("Decoded: "+decodedBase);

console.log(isValid(decodedBase));

function getUnit(userBase,sysBase) {
    let resultUnit = userBase-sysBase;
    if(resultUnit<=0) resultUnit = (resultUnit+maxBase);
    return resultUnit;
}

function encodetoken(base,code) {
    if(units != Math.floor(units)){
        //originalUnits = units;
        //units = Math.ceil(units);
    }
    let key = (base + units);
    if(key>maxBase){
        if(key>9999) return false;
        key = (key-maxBase);
    }
    return code.toString()+key;
}

function decodetoken(token,base) {
    if(token.toString().length!==9)return [0,0];
    let key = token.toString().substring(6,9);
    let resultUnit = getUnit(key,base);
    return resultUnit;
}

我想将第二段解释为代码,我听不懂。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)