Skip to content

Instantly share code, notes, and snippets.

@loskael
Created April 7, 2022 03:02
Show Gist options
  • Save loskael/156357a1a12f6d160747b0b5fbc4f5d6 to your computer and use it in GitHub Desktop.
Save loskael/156357a1a12f6d160747b0b5fbc4f5d6 to your computer and use it in GitHub Desktop.
Simple xor two strings
function xString(left, right) {
let ret = '';
let lStr = String(left);
let rStr = String(right);
if (lStr.length < rStr.length) {
[lStr, rStr] = [rStr, lStr];
}
let len = lStr.length;
rStr = rStr.padEnd(len, rStr);
for (let i = 0; i < len; i++) {
ret += String.fromCharCode(lStr.charCodeAt(i) ^ rStr.charCodeAt(i));
}
return ret;
}
// TEST CASE
let a = 'hello world';
let b = '123123';
let r = xString(a, b);
let ar = xString(a, r);
let ra = xString(r, a);
let br = xString(b, r);
let rb = xString(r, b);
console.log({ a, b, ab: r, ar, ra, br, rb });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment