Update and rename AtBash.js to Atbash.js

This commit is contained in:
Bharat Arya
2020-10-03 11:56:12 +05:30
committed by GitHub
parent 23d1bfda28
commit 4a8443dda8
2 changed files with 34 additions and 26 deletions

View File

@ -1,26 +0,0 @@
const enAtbash = (message) => {
const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
const tebahpla = 'ZYXWVUTSRQPONMLKJIHGFEDCBA'
const alphabet1 = 'abcdefghijklmnopqrstuvwxyz'
const tebahpla1 = 'zyxwvutsrqponmlkjihgfedcba'
let decodedString = ''
for (let i = 0; i < message.length; i++) {
const codedLetra = message.charAt(i)
if (/[^a-zA-Z]/.test(message[i])) {
decodedString = decodedString + message[i]
} else if (message[i] === message[i].toUpperCase()) {
const letraPosMayus = alphabet.indexOf(codedLetra)
const tebLetraPosMayus = tebahpla.charAt(letraPosMayus)
decodedString = decodedString + tebLetraPosMayus
} else {
const letraPosMinus1 = alphabet1.indexOf(codedLetra)
const tebLetraPosMinus1 = tebahpla1.charAt(letraPosMinus1)
decodedString = decodedString + tebLetraPosMinus1
}
}
return decodedString
}
// testing code
console.log(enAtbash('Hello World!'))

34
Ciphers/Atbash.js Normal file
View File

@ -0,0 +1,34 @@
/*
The Atbash cipher is a particular type of monoalphabetic cipher
formed by taking the alphabet and mapping it to its reverse,
so that the first letter becomes the last letter,
the second letter becomes the second to last letter, and so on.
*/
/**
* Decrypt a Atbash cipher
* @param {String} str - string to be decrypted/encrypt
* @return {String} decrypted/encrypted string
*/
const Atbash = (message) => {
let decodedString = ''
for (let i = 0; i < message.length; i++) {
if (/[^a-zA-Z]/.test(message[i])) {
decodedString += message[i]
} else if (message[i] === message[i].toUpperCase()) {
decodedString += String.fromCharCode(90 + 65 - message.charCodeAt(i))
} else {
decodedString += String.fromCharCode(122 + 97 - message.charCodeAt(i))
}
}
return decodedString
}
// Atbash Example
const encryptedString = 'HELLO WORLD'
const decryptedString = Atbash(encryptedString)
console.log(decryptedString) // SVOOL DLIOW