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