mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-06 01:18:23 +08:00
Update and rename AtBash.js to Atbash.js
This commit is contained in:
@ -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
34
Ciphers/Atbash.js
Normal 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
|
Reference in New Issue
Block a user