Javascript 中的 XOR 密码解密
XOR cipher decryption in Javascript
我有一个必须解码的 base64 字符串,它是 AwELBwc=
。使用给我的 XOR 密码密钥,即 26364
,我必须解码字符串以获得一个我已经知道的数字 (7813
).
这在 Javascript 中是如何完成的?运行 将 base64 编码的字符串通过具有已知密钥的 XOR 密码,然后输出结果?
这段代码应该可以满足您的要求:
function base64ToArray(base64String) {
var bstr = atob(base64String);
var bytes = [];
for (var i = 0; i < bstr.length; i++) {
bytes.push(bstr.charCodeAt(i));
}
return bytes;
}
let key = [2,6,3,6,4];
let cipherTextBase64 = 'AwELBwc=';
let cipherTextBytes = base64ToArray(cipherTextBase64);
let result = key.map((value,index) => {
return value ^ cipherTextBytes[index];
});
document.getElementById('output').innerHTML = 'Result: ' + result.join();
console.log('Result: ', result);
<div id="output">
</div>
下面的函数的灵感来自 Terry Lennox 在他的回答中使用的 xor character by character 方法。
function xorDecryptBase64(base64string, cipher)
{
let keys = cipher.toString().split('');
let charCodes = atob(base64string).split('')
.map(function(c){return c.charCodeAt(0)});
return Number(charCodes
.map(function(v,i){return v ^ keys[i%keys.length]})
.slice(1).join('')
);
}
console.log(xorDecryptBase64('AwELBwc=', 26364));
console.log(xorDecryptBase64('AwAFAAIEAA==', 26364));
我有一个必须解码的 base64 字符串,它是 AwELBwc=
。使用给我的 XOR 密码密钥,即 26364
,我必须解码字符串以获得一个我已经知道的数字 (7813
).
这在 Javascript 中是如何完成的?运行 将 base64 编码的字符串通过具有已知密钥的 XOR 密码,然后输出结果?
这段代码应该可以满足您的要求:
function base64ToArray(base64String) {
var bstr = atob(base64String);
var bytes = [];
for (var i = 0; i < bstr.length; i++) {
bytes.push(bstr.charCodeAt(i));
}
return bytes;
}
let key = [2,6,3,6,4];
let cipherTextBase64 = 'AwELBwc=';
let cipherTextBytes = base64ToArray(cipherTextBase64);
let result = key.map((value,index) => {
return value ^ cipherTextBytes[index];
});
document.getElementById('output').innerHTML = 'Result: ' + result.join();
console.log('Result: ', result);
<div id="output">
</div>
下面的函数的灵感来自 Terry Lennox 在他的回答中使用的 xor character by character 方法。
function xorDecryptBase64(base64string, cipher)
{
let keys = cipher.toString().split('');
let charCodes = atob(base64string).split('')
.map(function(c){return c.charCodeAt(0)});
return Number(charCodes
.map(function(v,i){return v ^ keys[i%keys.length]})
.slice(1).join('')
);
}
console.log(xorDecryptBase64('AwELBwc=', 26364));
console.log(xorDecryptBase64('AwAFAAIEAA==', 26364));