Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите написать шифр Гронсфельда (https://javascript.ru/forum/misc/62068-pomogite-napisat-shifr-gronsfelda.html)

Екатерина13 22.03.2016 23:09

помогите написать шифр Гронсфельда
 
Ребята,помогите написать шифр Гронсфельда на JavaScript!ПОЖАЛУЙСТА

рони 23.03.2016 00:27

Екатерина13,
:-?
<script>
function crypt(message, key, decrypt) {
    var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
    message = message.split("");
    key = ("" + key).split("");
    return message.reduce(function(message, current) {
        var i = a.indexOf(current),
            b = +key.shift();
        key.push(b);
        decrypt ? (i -= b, i < 0 && (i += a.length)) : (i += b, i %= a.length);
        return message + a[i]
    }, "")
};

  document.write(crypt("RAMMSTEIN", 2015)+"<br>") // encrypt
  document.write(crypt("TANRUTFNP", 2015, true))  // decrypt
  </script>

рони 23.03.2016 00:37

Шифр Гронсфельда
 
Екатерина13,
<script>
function crypt(message, key, decrypt) {
    var a = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".split("");
    message = message.split("");
    key = ("" + key).split("");
    return message.reduce(function(message, current) {
        var i = a.indexOf(current),
            b = +key.shift();
        key.push(b);
        decrypt ? (i -= b, i < 0 && (i += a.length)) : (i += b, i %= a.length);
        return message + a[i]
    }, "")
};

  document.write(crypt("ПРЕЗЕНТАЦИЯ", 235689)+"<br>") // encrypt
  document.write(crypt("СУКННЦФГЫОЗ", 235689, true))  // decrypt
  </script>


Екатерина13 29.03.2016 21:09

Спасибо!

Екатерина13 31.03.2016 17:10

рони,
а можно с комментариями?! и почему-то у меня выдает ошибку в 6 строке

рони 31.03.2016 17:32

Цитата:

Сообщение от Екатерина13
а можно с комментариями?!

Шифр Гронсфельда
Цитата:

Сообщение от Екатерина13
выдает ошибку в 6 строке

видимо слишком старый браузер, без поддержки reduce
...писать код надо самостоятельно...

Екатерина13 31.03.2016 17:38

рони, спасибо


Часовой пояс GMT +3, время: 14:02.