decryption

by knunery

JavaScript

// wrote variables in python esque syntax
var input = {
    message: "012222 1114142503 0313012513 03141418192102 0113 2419182119021713 06131715070119",
    keyed_alphabet: "BHISOECRTMGWYVALUZDNFJKPQX"
};

var keyed_alphabet_array = input.keyed_alphabet.split('');
//var keyed_alphabet_dictionary = 
var alphabet_array = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split('');

var message_array = input.message.split(" ");

for(var i=0; i<message_array.length; i++)
{
    var number_string = message_array[i];

    var number_string_char_array =     number_string.split('');
    var decodedString = "";
    for(var j=0; j< number_string_char_array.length; j+=2)
    {
        var alphabetIndex = parseInt(number_string_char_array[j] + number_string_char_array[j+1]);

        // look up value in plain alphabet
        var encoded = alphabet_array[alphabetIndex];
        // find the index of the letter in the keyed array
        var index = keyed_alphabet_array.indexOf(encoded);  // could optimize out indexOf lookup      
        // use the index from the encoding array to decode the value
        decodedString += alphabet_array[index];
    }
    
    message_array[i] = decodedString;
}

console.log(message_array.join(" "));