我在下面找到了将字符串转换为混淆的base64字符串的javascript代码。
但是如何转换回来呢?
`
function strobuscate(a) {
return (a.split('').map(function(c, i) {
return String.fromCharCode(c.charCodeAt(0) + i % 80);
}).join('');
}
`
您必须反转每个操作并反转操作的顺序。我将为您提供每个操作的细分,并留给您实际进行反转:
制备:
t = parseInt((+new Date()).toString().substr(11))
:它获取当前 UTC 时间戳的最后两位数字,即第 100 秒和第 1000 秒。该|| 1
仅用于在日期未给出有用结果的情况下处理错误。y = ('0' + t.toString(16)).substr(-2)
:将前一个t
转换为基数 16。0 前缀和 -2 子字符串再次只是极端情况的错误处理
混淆:
a.split('').map(function(e, i) { return String.fromCharCode(e.charCodeAt(0) + i % t); }).join('')
:遍历输入字符串的每个字符并应用内部函数:- 获取字符代码并添加索引模
t
并从该字符代码中获取字符串
- 获取字符代码并添加索引模
- 将字符转换后的字符串传递到
obbtoa
:btoa
字符串- 替换不同的特殊字符
y
附加到结果字符串前面,因此解码可以知道t
和y
。
要了解反转:
- 取前两个字符来得到
y
,反转我们用来计算y
的操作,从t
得到"我们的"t
反 - 转替换,反转
btoa
- 通过基本上执行
-
而不是+
来反转字符转换