如何解决在paygOPS中解码和编码令牌
我有一个程序可以根据下面指定的脚本创建
值的编码
通过在代码的后3位屏蔽掩码来将值编码 “起始代码”中的值。这是通过将值添加到 如果结果值超过“起始代码”的后三位 999,然后从该值中减去1000。例如,如果代码 是“ 123456 789”,并且要编码的值是50,结果代码 其值编码为“ 123456 839”。解码通过 将“起始码”基数(最后3位)减去基数 (最后3位数字)的接收到的代码。例如,如果收到 代码是123456829,基数是829。从829减去789可得出 40是值。如果获得的值为负,则为1000 需要添加。
在设备上解码代码
- 从输入代码中解码值。
- 通过按照“值的编码”中的步骤将值编码到起始代码中来生成“基本代码” 部分
- 通过“代码生成函数”将“基本代码”传递X次,X是最后一次计数+ 30,每次迭代: 3.1。将结果代码中的“代码库”替换为“编码的代码库”。例如,如果从步骤3得到的代码是“ 234567 890”,则最终代码将为“ 234567 839”(如果值为 编码为50,底数为789,如上例所示) 3.2。如果当前X严格高于上一个计数,则如果它们匹配,我们会将结果代码与输入代码进行比较。如果它 匹配,则代码有效,我们返回值。如果不是,我们 继续迭代
- 如果到达循环末尾且未找到匹配项,则该代码无效(已经使用或正确无效)。
到目前为止,我已经设法根据第一段创建了一段代码,但未能理解第二段。
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 举报,一经查实,本站将立刻删除。