Javascript中的XOR密码解密

Javascript中的XOR密码解密,javascript,xor,Javascript,Xor,我有一个base64字符串需要解码,它是AwELBwc=。使用给我的XOR密码密钥,即26364,我必须解码字符串以获得一个数字,我已经知道7813 在Javascript中如何实现这一点,即获取base64编码的字符串,使用已知密钥通过XOR密码运行它,然后输出结果?此代码应满足您的要求: 函数base64ToArraybase64String{ var bstr=atobbase64String; var字节=[]; 对于变量i=0;i{ 返回值^cipherTextBytes[索引];

我有一个base64字符串需要解码,它是AwELBwc=。使用给我的XOR密码密钥,即26364,我必须解码字符串以获得一个数字,我已经知道7813


在Javascript中如何实现这一点,即获取base64编码的字符串,使用已知密钥通过XOR密码运行它,然后输出结果?

此代码应满足您的要求:

函数base64ToArraybase64String{ var bstr=atobbase64String; var字节=[]; 对于变量i=0;i{ 返回值^cipherTextBytes[索引]; }; document.getElementById'output'.innerHTML='Result:'+Result.join; console.log'Result:',Result;
下面的函数受Terry Lennox在回答中使用的xor逐字符方法的启发

函数xOrderCryptBase64Base64String,密码 { 让keys=cipher.toString.split; 让charCodes=atobbase64string.split .mapfunctionc{return c.charCodeAt0}; 返回数弧码 .mapfunctionv,i{返回v^keys[i%keys.length]} .1.加入 ; } logxOrderCryptBase64'AwELBwc=',26364;
console.logxOrderCryptBase64'AwafaaieA==',26364@是的,但是base64实际上是“AwELBwc=”。我不确定为什么atob'MzA4NDE='^26364有效。因此,最终结果必须是'17813',但第一个数字被截断。Jup,解码可能会让人困惑。这是有效的答案;但是我现在有一个base64字符串,它是'awafaaia==',解码的结果应该是'666666'。当第一个字符被切片时,它只显示结果的前4个字符。这是如何解决的?您是说base64中的第一个字符被切片,还是结果?我不太明白你的意思:你的期望和我们现在得到的答案似乎有些出入。。可能使用的算法略有不同?结果数组被移动以获得结果。是的,可能是这样,因为这些算法似乎无法处理这些特定的base64字符串。我认为@LukStorms已经破解了它!XOrderCryptBase64'AwafaaieA==',26364;返回666640。不确定代码是否出错,或者是base64。结果应为666666。@ethanc Fixed。问题在于,当base64字符串返回的字符长度大于密码长度时。但是通过使用一个模数,地图中的索引得到了纠正。@Ethac顺便说一句,目前第一个数字刚刚被切掉。我想这是对的?这不是什么特殊的规则吗?