Files
JavaScript/Ciphers/ROT13.js
Sutthinart Khunvadhana 0ca9c89727 Add ROT13 cipher (#463)
* Add ROT13 cipher

* Update ROT13.js

Co-authored-by: Sutthinart Khunvadhana <sutthinart.khunvadhana@refinitiv.com>
Co-authored-by: vinayak <itssvinayak@gmail.com>
2020-10-12 13:05:09 +05:30

22 lines
902 B
JavaScript

/**
* Transcipher a ROT13 cipher
* @param {String} text - string to be encrypted
* @return {String} - decrypted string
*/
const transcipher = (text) => {
const originalCharacterList = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
const toBeMappedCharaterList = 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm'
const index = x => originalCharacterList.indexOf(x)
const replace = x => index(x) > -1 ? toBeMappedCharaterList[index(x)] : x
return text.split('').map(replace).join('')
}
(() => {
const messageToBeEncrypted = 'The quick brown fox jumps over the lazy dog'
console.log(`Original Text = "${messageToBeEncrypted}"`)
const rot13CipheredText = transcipher(messageToBeEncrypted)
console.log(`Ciphered Text = "${rot13CipheredText}"`)
const rot13DecipheredText = transcipher(rot13CipheredText)
console.log(`Deciphered Text = "${rot13DecipheredText}"`)
})()