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

committed by
GitHub

parent
d44c1439d6
commit
0ca9c89727
21
Ciphers/ROT13.js
Normal file
21
Ciphers/ROT13.js
Normal 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}"`)
|
||||||
|
})()
|
Reference in New Issue
Block a user