The Atbash Cipher

Type your message:

What does it do?

Atbash is a substitution cipher that swaps each letter with one on the other end of the alphabet. A becomes Z, B becomes Y, C becomes X, and so on.

Background

This ancient cipher is named after the first/last, and second/second last letters of the Hebrew alphabet: Aleph-Tav-Beth-Shin. Some scholars believe that the Atbash cipher was used to encode certain names and places in the Bible.

<script type="text/javascript"><!-- [et_pb_line_break_holder] --> var alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> function isUpperCase(letter)<!-- [et_pb_line_break_holder] --> {<!-- [et_pb_line_break_holder] --> return (letter == letter.toUpperCase());<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> function convertText()<!-- [et_pb_line_break_holder] --> {<!-- [et_pb_line_break_holder] --> // Outputs the text in the field so that A=Z, B=Y, etc<!-- [et_pb_line_break_holder] --> var newStr = "";<!-- [et_pb_line_break_holder] --> var str = document.getElementById("someText");<!-- [et_pb_line_break_holder] --> for (var i = 0; i < str.value.length; i++)<!-- [et_pb_line_break_holder] --> {<!-- [et_pb_line_break_holder] --> var letter = str.value[i];<!-- [et_pb_line_break_holder] --> var index = alphabet.indexOf(letter.toUpperCase());<!-- [et_pb_line_break_holder] --> var upperCase = isUpperCase(letter);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> if(index>=0)<!-- [et_pb_line_break_holder] --> {<!-- [et_pb_line_break_holder] --> var newLetter = alphabet[alphabet.length - 1 - index];<!-- [et_pb_line_break_holder] --> console.log('index = ' + index);<!-- [et_pb_line_break_holder] --> if(!upperCase) newLetter = newLetter.toLowerCase();<!-- [et_pb_line_break_holder] --> newStr += newLetter;<!-- [et_pb_line_break_holder] --> } else {<!-- [et_pb_line_break_holder] --> // Not a letter<!-- [et_pb_line_break_holder] --> newStr += letter;<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> //console.log("newStr = " + newStr);<!-- [et_pb_line_break_holder] --> var encoded = document.getElementById("encoded");<!-- [et_pb_line_break_holder] --> encoded.innerHTML = newStr; <!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> var entry = document.getElementById("someText");<!-- [et_pb_line_break_holder] --> entry.addEventListener("input", convertText, true);<!-- [et_pb_line_break_holder] --> <!-- [et_pb_line_break_holder] --></script>