File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ The Atbash cipher is a particular type of monoalphabetic cipher
3
+ formed by taking the alphabet and mapping it to its reverse,
4
+ so that the first letter becomes the last letter,
5
+ the second letter becomes the second to last letter, and so on.
6
+ */
7
+
8
+ /**
9
+ * Decrypt a Atbash cipher
10
+ * @param {String } str - string to be decrypted/encrypt
11
+ * @return {String } decrypted/encrypted string
12
+ */
13
+ function Atbash ( message ) {
14
+ let decodedString = ''
15
+ for ( let i = 0 ; i < message . length ; i ++ ) {
16
+ if ( / [ ^ a - z A - Z ] / . test ( message [ i ] ) ) {
17
+ decodedString += message [ i ]
18
+ } else if ( message [ i ] === message [ i ] . toUpperCase ( ) ) {
19
+ decodedString += String . fromCharCode ( 90 + 65 - message . charCodeAt ( i ) )
20
+ } else {
21
+ decodedString += String . fromCharCode ( 122 + 97 - message . charCodeAt ( i ) )
22
+ }
23
+ }
24
+ return decodedString
25
+ }
26
+ // Atbash Example
27
+ const encryptedString = 'HELLO WORLD'
28
+ const decryptedString = Atbash ( encryptedString )
29
+ console . log ( decryptedString ) // SVOOL DLIOW
You can’t perform that action at this time.
0 commit comments