【发布时间】:2026-01-25 21:35:01
【问题描述】:
我找到了一个用 js 编写的算法(我不知道如何编码),然后在与一些了解 js 的朋友交谈后尝试将其转换为 python
Javascript
function crack(code) {
var N = '';
var M = '';
for(var i = 0; i < code.length; i++) {
if(i%2 == 0) {
N += code[i];
} else {
M = code[i] + M;
}
}
var key = N + M;
key = window.atob(key);
key = key.substring(2);
return key;
}
Python
import base64
def crack(code):
N = ''
M = ''
i = 0
for letter in code:
i =code.find(letter)
if i%2 == 0:
N += code[i]
else:
M =code[i] + M
key = N + M
key = base64.b64decode(key)
key = key[2:]
print key
如您所见,它是相同的代码,但这里的问题却没有给出相同的结果!!
这里要试的字符串是:
N=m=NAobdtHRRHwaOuiU8mvcZhWddH5bZhz1MWzLapyR5nibbhG19ynccl3RBXvediCV5mjcbh2d0HubZhW1cWvLM4j8ACxONwi8
在搜索window.atob一段时间后,发现该方法解码了一串由btoa()方法编码的数据。
然后搜索btoa发现这个方法使用“A-Z”、“a-z”、“0-9”、“+”、“/”和“=”字符来编码字符串。
现在如何使用 python 获得相同的结果??
【问题讨论】:
标签: javascript python algorithm base64 swap