![](/img/trans.png)
[英]Decryption of a 3-step cipher in Javascript leads to only half of the 26 characters in the alphabet being show, while some end up as symbols
[英]XOR cipher decryption in Javascript
我有一個必須解碼的base64字符串,即AwELBwc=
。 使用給我的XOR密碼密鑰26364
,我必須對字符串進行解碼以獲取一個我已經知道的數字( 7813
)。
如何在Javascript中完成此操作,在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在回答中使用的異或字符方法啟發的。
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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.