{"id":2798,"date":"2022-04-21T19:00:16","date_gmt":"2022-04-22T01:00:16","guid":{"rendered":"http:\/\/wp.lps.org\/aholdor\/?page_id=2798"},"modified":"2026-04-07T11:16:02","modified_gmt":"2026-04-07T16:16:02","slug":"ciphers","status":"publish","type":"page","link":"https:\/\/home.lps.org\/aholdor\/ciphers\/","title":{"rendered":"Ciphers"},"content":{"rendered":"\n<style>\nbody{\n  background-color: #CCCCFF;\n}\n#optionsDiv{\n  background-color: #AAFFFF;\n  margin: 25px;\n  padding: 25px;\n  width: 845px;\n  border: 1px solid black;\n  border-radius: 15px;\n}\n#optionHint{\n  font-size: 100%;\n  font-style: italic;\n}\ninput, select, span, label{\n  font-size: 150%;\n  color: #000000;\n}\nlabel{\n  margin-right: 25px;\n}\n.right{\n  float: right;\n}\n.left{\n  float: left;\n}\n.clear{\n  clear: both;\n}\n#optionText{\n  margin-top: 15px;\n  min-width: 100px;\n}\n<\/style>\n<div id=\"optionsDiv\">\n<script src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.7.1\/jquery.min.js\"><\/script>\n<script src=\"script.js\"><\/script>\n<span>Cipher Type: <\/span><select id=\"cipherSelect\">\n<option value=\"Caesar\" selected>Caesar<\/option>\n<option value=\"Shuffle\">Shuffle<\/option>\n<option value=\"Vigenere\">Vigenere<\/option>\n<\/select>\n<br\/><br\/>\n<label><input type=\"radio\" name=\"directionRadio\" id=\"encodeRadio\" value=\"encode\" checked\/> Encode<\/label>\n<label><input type=\"radio\" name=\"directionRadio\" id=\"decodeRadio\" value=\"decode\"\/> Decode<\/label>\n<hr\/>\n<div id=\"modifierDiv\" class=\"left\">\n<span id=\"optionSpan\">Shift amount: <\/span>\n<br\/>\n<span id=\"optionHint\">A number 0-26 to shift by.<\/span>\n<br\/>\n<input type=\"text\" class=\"input\" maxlength=\"2\" style=\"width:40px;\" id=\"optionText\" \/>\n<\/div>\n<div id=\"messageDiv\" class=\"right\">\n<span id=\"messageSpan\">Message: <\/span>\n<br\/>\n<textarea class=\"input\" id=\"messageText\" rows=\"10\" cols=\"40\"><\/textarea>\n<\/div>\n<br class=\"clear\"\/>\n<input type=\"button\" id=\"actionButton\" value=\"Encode\"\/>\n<hr\/>\n<div id=\"outputDiv\" class=\"right\">\n<span id=\"outputSpan\">Result: <\/span>\n<br\/>\n<textarea class=\"input\" id=\"outputText\" rows=\"10\" cols=\"40\" disabled=\"true\"><\/textarea>\n<\/div>\n<br class=\"clear\"\/>\n<\/div>\n<script>\nlet base64Code = \"dmFyIGFscGhhID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIi5zcGxpdCgiIik7CnZhciB2QWxwaGEgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVogIi5zcGxpdCgiIik7CnZhciBkaXIgPSAiZW5jb2RlIjsKdmFyIHNoaWZ0U3RvcmUgPSAiIjsKdmFyIGFscGhhU3RvcmUgPSAiIjsKdmFyIGtleVN0b3JlID0gIiI7CgokKCIjY2lwaGVyU2VsZWN0Iikub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7CiAgaWYoJCgiI2NpcGhlclNlbGVjdCIpLnZhbCgpID09ICJDYWVzYXIiKXsKICAgICQoIiNvcHRpb25TcGFuIikuaHRtbCgiU2hpZnQgYW1vdW50OiAiKTsKICAgICQoIiNvcHRpb25UZXh0IikuY3NzKCJ3aWR0aCIsIjQwcHgiKTsKICAgICQoIiNvcHRpb25UZXh0IikuYXR0cigibWF4bGVuZ3RoIiwiMiIpOwogICAgJCgiI29wdGlvbkhpbnQiKS5odG1sKCJBIG51bWJlciAwLTI2IHRvIHNoaWZ0IGJ5LiIpOwogICAgJCgiI29wdGlvblRleHQiKS52YWwoc2hpZnRTdG9yZSk7CiAgfWVsc2UgaWYoJCgiI2NpcGhlclNlbGVjdCIpLnZhbCgpID09ICJTaHVmZmxlIil7CiAgICAkKCIjb3B0aW9uU3BhbiIpLmh0bWwoIk5ldyBhbHBoYWJldDogIik7CiAgICAkKCIjb3B0aW9uVGV4dCIpLmNzcygid2lkdGgiLCI0MzBweCIpOwogICAgJCgiI29wdGlvblRleHQiKS5hdHRyKCJtYXhsZW5ndGgiLCIyNiIpOwogICAgJCgiI29wdGlvbkhpbnQiKS5odG1sKCJUaGUgbmV3IGFycmFuZ2VtZW50IG9mIHRoZSBhbHBoYWJldC4iKTsKICAgICQoIiNvcHRpb25UZXh0IikudmFsKGFscGhhU3RvcmUpOwogIH1lbHNlewogICAgJCgiI29wdGlvblNwYW4iKS5odG1sKCJLZXl3b3JkOiAiKTsKICAgICQoIiNvcHRpb25UZXh0IikuY3NzKCJ3aWR0aCIsIjI1MHB4Iik7CiAgICAkKCIjb3B0aW9uVGV4dCIpLmF0dHIoIm1heGxlbmd0aCIsIjIwIik7CiAgICAkKCIjb3B0aW9uSGludCIpLmh0bWwoIlRoZSBlbmNvZGluZyBrZXkuIik7CiAgICAkKCIjb3B0aW9uVGV4dCIpLnZhbChrZXlTdG9yZSk7CiAgfQp9KTsKCiQoImlucHV0W3R5cGU9cmFkaW9dW25hbWU9ZGlyZWN0aW9uUmFkaW9dIikuY2hhbmdlKGZ1bmN0aW9uKGUpewogIGlmKCQodGhpcykudmFsKCkgPT0gImVuY29kZSIpewogICAgJCgiI2FjdGlvbkJ1dHRvbiIpLnZhbCgiRW5jb2RlIik7CiAgICBkaXIgPSAiZW5jb2RlIjsKICB9ZWxzZXsKICAgICQoIiNhY3Rpb25CdXR0b24iKS52YWwoIkRlY29kZSIpOwogICAgZGlyID0gImRlY29kZSI7CiAgfQp9KTsKCiQoIiNhY3Rpb25CdXR0b24iKS5jbGljayhmdW5jdGlvbihlKXsKCXZhciBrID0gJCgiI29wdGlvblRleHQiKS52YWwoKS50b1VwcGVyQ2FzZSgpOwogIHZhciBtID0gJCgiI21lc3NhZ2VUZXh0IikudmFsKCkudG9VcHBlckNhc2UoKTsKICB2YXIgb3V0cHV0ID0gIiI7CglpZigkKCIjY2lwaGVyU2VsZWN0IikudmFsKCkgPT0gIkNhZXNhciIpewogIAlzaGlmdFN0b3JlID0gazsKICAJaWYoZGlyID09ICJlbmNvZGUiKXsKICAgIAlvdXRwdXQgPSBjYWVzYXJFbmNvZGUobSxrKTsKICAgIH1lbHNlewogICAgCW91dHB1dCA9IGNhZXNhckRlY29kZShtLGspOwogICAgfQogIH1lbHNlIGlmKCQoIiNjaXBoZXJTZWxlY3QiKS52YWwoKSA9PSAiU2h1ZmZsZSIpewogIAlhbHBoYVN0b3JlID0gazsKICAgIGlmKGFscGhhU3RvcmUubGVuZ3RoIDwgMjYpewogICAgCWZvcih2YXIgaT0wO2k8MjY7aSsrKXsKICAgICAgCWlmKCFrLmluY2x1ZGVzKGFscGhhW2ldKSl7CiAgICAgICAgCWsgKz0gYWxwaGFbaV07CiAgICAgICAgfQogICAgICB9CiAgICAgICQoIiNvcHRpb25UZXh0IikudmFsKGspOwogICAgfQogIAlpZihkaXIgPT0gImVuY29kZSIpewogICAgCW91dHB1dCA9IHNodWZmbGVFbmNvZGUobSxrKTsKICAgIH1lbHNlewogICAgCW91dHB1dCA9IHNodWZmbGVEZWNvZGUobSxrKTsKICAgIH0KICB9ZWxzZXsKICAJa2V5U3RvcmUgPSBrOwogIAlpZihkaXIgPT0gImVuY29kZSIpewogICAgCW91dHB1dCA9IHZpZ2VuZXJlRW5jb2RlKG0sayk7CiAgICB9ZWxzZXsKICAgIAlvdXRwdXQgPSB2aWdlbmVyZURlY29kZShtLGspOwogICAgfQogIH0KICAkKCIjb3V0cHV0VGV4dCIpLnZhbChvdXRwdXQpOwp9KTsKCmZ1bmN0aW9uIHZpZ2VuZXJlRGVjb2RlKG1lc3NhZ2UsIGtleSl7Cgl2YXIgb3V0cHV0ID0gIiI7CiAgdmFyIGtleVNoaWZ0ID0gMDsKICB3aGlsZShrZXkubGVuZ3RoIDwgbWVzc2FnZS5sZW5ndGgpewogIAlrZXkgKz0ga2V5OwogIH0KICBmb3IodmFyIGk9MDtpPG1lc3NhZ2UubGVuZ3RoO2krKyl7CiAgCWlmKHZBbHBoYS5pbmNsdWRlcyhtZXNzYWdlW2ldKSl7CiAgCQl2YXIgcyA9IG1lc3NhZ2VTaGlmdChtZXNzYWdlW2ldLC12QWxwaGEuaW5kZXhPZihrZXlbaS1rZXlTaGlmdF0pLDI3KTsKICAgICAgb3V0cHV0ICs9IHM7CiAgICB9ZWxzZXsKICAgIAlvdXRwdXQgKz0gbWVzc2FnZVtpXTsKICAgICAga2V5U2hpZnQrKzsKICAgIH0KICB9CiAgcmV0dXJuIG91dHB1dDsKfQpmdW5jdGlvbiB2aWdlbmVyZUVuY29kZShtZXNzYWdlLCBrZXkpewoJdmFyIG91dHB1dCA9ICIiOwogIHZhciBrZXlTaGlmdCA9IDA7CiAgd2hpbGUoa2V5Lmxlbmd0aCA8IG1lc3NhZ2UubGVuZ3RoKXsKICAJa2V5ICs9IGtleTsKICB9CiAgZm9yKHZhciBpPTA7aTxtZXNzYWdlLmxlbmd0aDtpKyspewogIAlpZih2QWxwaGEuaW5jbHVkZXMobWVzc2FnZVtpXSkpewogIAkJdmFyIHMgPSBtZXNzYWdlU2hpZnQobWVzc2FnZVtpXSx2QWxwaGEuaW5kZXhPZihrZXlbaS1rZXlTaGlmdF0pLDI3KTsKICAgICAgb3V0cHV0ICs9IHM7CiAgICB9ZWxzZXsKICAgIAlvdXRwdXQgKz0gbWVzc2FnZVtpXTsKICAgICAga2V5U2hpZnQrKzsKICAgIH0KICB9CiAgcmV0dXJuIG91dHB1dDsKfQoKZnVuY3Rpb24gc2h1ZmZsZUVuY29kZShtZXNzYWdlLCBrZXkpewoJdmFyIG91dHB1dCA9ICIiOwogIGZvcih2YXIgaT0wO2k8bWVzc2FnZS5sZW5ndGg7aSsrKXsKICAJaWYoYWxwaGEuaW5jbHVkZXMobWVzc2FnZVtpXSkpewogICAgICBvdXRwdXQgKz0ga2V5W2FscGhhLmluZGV4T2YobWVzc2FnZVtpXSldOwogICAgfWVsc2V7CiAgICAgIG91dHB1dCArPSBtZXNzYWdlW2ldOwogICAgfQogIH0KICByZXR1cm4gb3V0cHV0Owp9CgpmdW5jdGlvbiBzaHVmZmxlRGVjb2RlKG1lc3NhZ2UsIGtleSl7Cgl2YXIgb3V0cHV0ID0gIiI7CiAgZm9yKHZhciBpPTA7aTxtZXNzYWdlLmxlbmd0aDtpKyspewogICAgaWYoYWxwaGEuaW5jbHVkZXMobWVzc2FnZVtpXSkpewogICAgICBvdXRwdXQgKz0gYWxwaGFba2V5LmluZGV4T2YobWVzc2FnZVtpXSldOwogICAgfWVsc2V7CiAgICAgIG91dHB1dCArPSBtZXNzYWdlW2ldOwogICAgfQogIH0KICByZXR1cm4gb3V0cHV0Owp9CgpmdW5jdGlvbiBjYWVzYXJFbmNvZGUobWVzc2FnZSwgc2hpZnQpewoJcmV0dXJuIG1lc3NhZ2VTaGlmdChtZXNzYWdlLCBzaGlmdCk7Cn0KCmZ1bmN0aW9uIGNhZXNhckRlY29kZShtZXNzYWdlLCBzaGlmdCl7CglyZXR1cm4gbWVzc2FnZVNoaWZ0KG1lc3NhZ2UsIC1zaGlmdCk7Cn0KCmZ1bmN0aW9uIG1lc3NhZ2VTaGlmdChtZXNzYWdlLCBzaGlmdCwgbWF4PTI2KXsKCXZhciBvdXRwdXQgPSAiIjsKICB3aGlsZShzaGlmdCA8IDApewogIAlzaGlmdCArPSBtYXg7CiAgfQogIHZhciB0aGlzQWxwaGEgPSBhbHBoYS5zbGljZSgwKTsKICBpZihtYXggPT0gMjcpewogIAl0aGlzQWxwaGEgPSB2QWxwaGEuc2xpY2UoMCk7CiAgfQogIHNoaWZ0ID0gc2hpZnQlbWF4OwogIGZvcih2YXIgaT0wO2k8bWVzc2FnZS5sZW5ndGg7aSsrKXsKICAJaWYodGhpc0FscGhhLmluY2x1ZGVzKG1lc3NhZ2VbaV0pKXsKICAgICAgdmFyIGluZCA9ICh0aGlzQWxwaGEuaW5kZXhPZihtZXNzYWdlW2ldKStzaGlmdCklbWF4OwogICAgICBvdXRwdXQgKz0gdGhpc0FscGhhW2luZF07CiAgICB9ZWxzZXsKICAgIAlvdXRwdXQgKz0gbWVzc2FnZVtpXTsKICAgIH0KICB9CiAgcmV0dXJuIG91dHB1dDsKfQokKCIjb3B0aW9uVGV4dCIpLm9uKCdrZXl1cCcsIGZ1bmN0aW9uIChlKSB7CiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXlDb2RlID09PSAxMykgewogICAgICAgICQoIiNhY3Rpb25CdXR0b24iKS5jbGljaygpOwogICAgfQp9KTsKCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CgkKfSk7\";\nlet jsCode = atob(base64Code); \/\/ Decode Base64 to JavaScript\n    let script = document.createElement(\"script\");\n    script.textContent = jsCode + \"numScenes = 3;\";\n    document.body.appendChild(script);\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Cipher Type: CaesarShuffleVigenere Encode Decode Shift amount: A number 0-26 to shift by. Message: Result:<\/p>\n","protected":false},"author":5113,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2798","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/pages\/2798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/users\/5113"}],"replies":[{"embeddable":true,"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/comments?post=2798"}],"version-history":[{"count":5,"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/pages\/2798\/revisions"}],"predecessor-version":[{"id":3530,"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/pages\/2798\/revisions\/3530"}],"wp:attachment":[{"href":"https:\/\/home.lps.org\/aholdor\/wp-json\/wp\/v2\/media?parent=2798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}