mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-07 02:05:08 +08:00
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:

committed by
GitHub

parent
3874ec3778
commit
4be7a85fd3
26
Ciphers/XORCipher.js
Normal file
26
Ciphers/XORCipher.js
Normal 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)
|
Reference in New Issue
Block a user