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>
This commit is contained in:
Sutthinart Khunvadhana
2020-10-12 14:35:09 +07:00
committed by GitHub
parent d44c1439d6
commit 0ca9c89727

21
Ciphers/ROT13.js Normal file
View File

@ -0,0 +1,21 @@
/**
* 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}"`)
})()