2014-12-10 2 views
-3

Я пытаюсь разработать инструмент преобразования текста на основе браузера, в котором я могу написать нормальное текстовое сообщение на английском языке, например «Hello world», и преобразовать каждый символ в символ, определенный моим шифр, который в этом случае становится «A # EC# C# Ab EdAbFbC# D».Javascript Cryptography - преобразовать символ в другой символ

Для каждого символа существует взаимно однозначное сопоставление. До сих пор я выложил предварительно вычисленный шифр как

var map { 
    a : "A"; 
    b : "B"; 
    c : "C"; 
    d : "D"; 
    e : "E"; 
    f : "F"; 
    g : "G"; 
    h : "A#"; 
    i : "E#"; 
    j : "B#"; 
    k : "F#"; 
    l : "C#"; 
    m : "G#"; 
    ... 
} 

И так далее.

Вопрос: как взять текст из текстового поля html (например, «Hello world») и преобразовать символы в соответствующий символ из карты в другое текстовое поле (давая «A # EC# C# Ab EdAbFbC# D ")?

+1

Недействительный JavaScript. Что '' '' там? Что такое 'var map {...}'? –

+0

У вас также будет проблема, заменив его обратно. Вероятно, вы должны использовать другую карту, где каждый символ заменяется на ** один другой символ. –

+0

Я думаю, вы хотели бы знать, что это очень небезопасный способ «защитить» вещи :) - Если вы хотите знать, почему его небезопасно, я предлагаю вам пройти курс криптографии в Академии Хан, у вас будет меньше часа, а его free – renatoargh

ответ

3

Простой, на самом деле:

var result = myString.split('') // Split the string into an array 
    .map(function(c){   // Replace the characters in the array 
     return map[c]; 
    }) 
    .join('');    // Rebuild the string from the resulting array. 

Ваш map объект должен быть объявлен немного по-другому, хотя:

var map = { // < `=`-sign 
    a : "A", 
    b : "B", 
    c : "C", 
    // ^comma's, not semicolons 
} 

Теперь вы должны иметь в виду, что эта замена является случай , чувствительные.

+0

Примечание: карты и функции объединения не обновляют исходную строку, поэтому вам нужно будет ее где-то назначить. – Eyal

+0

@Eyal: Я совсем забыл об этом xD – Cerbrus

+0

Спасибо за комментарии @Cerbrus. Мне все еще нужно немного помочь мне в этом. Это мой код до сих пор, что еще мне нужно? '

<текстовое поле Name = "textBox1" COLS = "50" строк = "5"> ' –

Смежные вопросы