使用 AND 和 OR 运算符实现的加密程序该如何解密?

查看 73|回复 4
作者:ENIAC   
AND 和 OR 运算是不是没有逆运算呀?那下面这种程序要如何写一个 decode 算法呢?是不是解密有另外的一个码表?有没有吊大的可以给一下解题思路?
const codeTable = 'a=9-vBc3C0iDWJE4gFumGYsHoyIe7KxVLkXM6ZNqbOtdPwfQzh12jR5lS8nT_pUAr'
const encode = json => {
    let result = ''
    for (let i = 0; i > 2
        const e = ((3 & a) > 4)
        let f = ((b & 15) > 6)
        let g = c & 63
        isNaN(b) ? f = g = 64 : isNaN(c) && (g = 64)
        result = result + codeTable[d] + codeTable[e] + codeTable[f] + codeTable[g]
    }
    return result
}
const decode = cipher => {
}

const, codetable, result, deat

pagxir   
这不就是 base64 编码么,只是把码表换而已。
gwy15   
这就是一个自定义了映射的 base64 编码
momocraft   
假定可以解密而且代码是对的,因为我不知道这里用 charCodeAt 是不是对
注意到每次循环把 json 的 3 字符编码成 result4 个字符
所以把 \x00\x00\x00 ~ \xff\xff\xff 跑一遍就得到码表了
NoOneNoBody   
首先,有个词叫“位运算”,如果不懂这个,那不知道 base64 的实现原理也就正常了
位运算虽然在高级语言使用场合不多,但它是编程的基础之一,也是各种逻辑算式在二进制整数的体现(原理),不懂的话建议补充学习一下
您需要登录后才可以回帖 登录 | 立即注册

返回顶部