Javascript中的Atbash密码

Javascript中的Atbash密码,javascript,encryption,Javascript,Encryption,在前言中,我对JS很陌生,所以我的错误可能是令人尴尬的基本错误 我正在尝试为Atbash密码制作一个解码器,它只是简单地反转字母表。Z=A,Y=B,依此类推 以下是我得到的: decode("ZYX"); function decode(message) { var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var tebahpla = "ZYXWVUTSRQPONMLKJIHGFEDCBA"; var decoded_string = ""; for

在前言中,我对JS很陌生,所以我的错误可能是令人尴尬的基本错误

我正在尝试为Atbash密码制作一个解码器,它只是简单地反转字母表。Z=A,Y=B,依此类推

以下是我得到的:

decode("ZYX");
function decode(message) {
var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var tebahpla = "ZYXWVUTSRQPONMLKJIHGFEDCBA";
var decoded_string = "";

for (i = 0; i < message.length; i++) {
    var coded_letter = message.charAt(i);
    var letter_index = alphabet.indexOf(coded_letter);
    var decoded_letter = tebahpla.charAt(letter_index);
    decoded_string = decoded_string + decoded_letter;
}
return decoded_string;
}
解码(“ZYX”);
功能解码(消息){
var alphabet=“abcdefghijklmnopqrstuvxyz”;
var tebahpla=“zyxwvutsrqponmlkhgfedcba”;
var解码_字符串=”;
对于(i=0;i
公共类CifradoAtbash{
公共字符串EnAtbash(字符串尺寸){
字符串字母表=“abcdefghijklmnopqrstuvxyz”;
字符串tebahpla=“zyxwvutsrqponmlkhgfedcba”;
字符串alphabet1=“abcdefghijklmnopqrstuvxyz”;
字符串tebahpla1=“zyxwvutsrqponmlkhgfedcba”;
已解码字符串_String=“”;
对于(int i=0;i
我认为您可以轻松地将@Robert发布的代码从Java转换为Javascript。我已经修改了代码,以保留非字母字符(如空格、数字、标点符号等):

功能启用灰分(尺寸){
var alphabet=“abcdefghijklmnopqrstuvxyz”;
var tebahpla=“zyxwvutsrqponmlkhgfedcba”;
var alphabet1=“abcdefghijklmnopqrstuvxyz”;
var tebahpla1=“zyxwvutsrqponmlkhgfedcba”;
var解码_字符串=”;
对于(变量i=0;idocument.write(enAtbash(“Hello World!”);
你到底在问什么?我在“ZYX”上尝试了你的解码功能,结果返回了“ABC”。你为什么不在字母表字符串中找到字母的索引/将其转换为数组,然后使用索引打印出字母或用tebahpla[index]附加到解码后的字符串中.您好。简单描述一下您的代码将大大改进您的答案。嘿,您的答案似乎是用Java编写的……不要混淆JavaScript,它们非常不同。
public class CifradoAtbash {

public String EnAtbash(String mensage) {    

    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    String tebahpla = "ZYXWVUTSRQPONMLKJIHGFEDCBA";
    String alphabet1 = "abcdefghijklmnopqrstuvwxyz";
    String tebahpla1 = "zyxwvutsrqponmlkjihgfedcba";
    String decoded_string = "";

    for (int i = 0; i < mensage.length(); i++) {
        char coded_letra = mensage.charAt(i);
        if (Character.isUpperCase(coded_letra)) {

            int letraPosMayus = alphabet.indexOf(coded_letra);
            char tebLetraPosMayus = tebahpla.charAt(letraPosMayus);

            decoded_string = decoded_string+tebLetraPosMayus;
        }
        else {
            int letraPosMinus1 = alphabet1.indexOf(coded_letra);
            char tebLetraPosMinus1 = tebahpla1.charAt(letraPosMinus1);
            decoded_string = decoded_string + tebLetraPosMinus1;
        }

    }
    return decoded_string;
}