Added an XOR cipher (#135)

* Added an XOR cipher

* Rename xor_cipher.js to XORCipher.js

* Update XORCipher.js

Co-authored-by: vinayak <itssvinayak@gmail.com>
This commit is contained in:
LethargicLeprechaun
2020-06-23 05:47:44 +01:00
committed by GitHub
parent 3874ec3778
commit 4be7a85fd3

26
Ciphers/XORCipher.js Normal file
View File

@ -0,0 +1,26 @@
/**
* The XOR cipher is a type of additive cipher.
* Each character is bitwise XORed with the key.
* We loop through the input string, XORing each
* character with the key.
*/
/**
* Encrypt using an XOR cipher
* @param {String} str - String to be encrypted
* @param {Number} key - key for encryption
* @return {String} encrypted string
*/
function XOR (str, key) {
let result = ''
for (const elem of str) {
result += String.fromCharCode(elem.charCodeAt(0) ^ key)
}
return result
}
const encryptedString = XOR('test string', 32)
console.log('Encrypted: ', encryptedString)
const decryptedString = XOR(encryptedString, 32)
console.log('Decrypted: ', decryptedString)