Зашифровать-расшифровать

Тема в разделе "JavaScript", создана пользователем Denixxx, 27 янв 2015.

Модераторы: ZiX
  1. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    191
    Есть слово на русском или не русском языке.
    Какую можно применить функцию или несколько функций в яваскрипт, чтобы получилось тоже слово, но отличное от начального?
    Мне нужно, чтобы получилось некое кодовое слово, к которому можно применить обратное преобразование и получить исходное слово.
    Функции escape/unescape не подходят, т.к. получаемый код содержит нечитаемые символы.
    А должно быть что-то из алфавита (рус/eng) плюс можно ещё цифры.
     
  2. Android

    Android

    Регистр.:
    10 июн 2006
    Сообщения:
    603
    Симпатии:
    518
    Как вариант использовать base64_encode() и base64_decode()
     
  3. Android

    Android

    Регистр.:
    10 июн 2006
    Сообщения:
    603
    Симпатии:
    518
    А можно шифровать по ключу обратимым шифрованием:

    Код:
    class Crypt {
        public static void main(String args[]) {
                String msg = "This is a test";
                String encmsg = "";
                String decmsg = "";
                String key = "41";
                int keylen = key.length();
                int msglen = msg.length();
                int j;
                System.out.println("Original message: "+msg);
                j = 0;
                for(int i = 0; i < msglen; i++) {
                    encmsg = encmsg + (char) (msg.charAt(i) ^ key.charAt(j));
                    j++;
                    if(j==keylen) {
                        j=0;
                    }
                }
                System.out.println("Encoded message: "+encmsg);
                j = 0;
                for(int i = 0; i < msglen; i++) {
                    decmsg = decmsg + (char) (encmsg.charAt(i) ^ key.charAt(j));
                    j++;
                    if(j==keylen) {
                        j=0;
                    }
                }
                System.out.println("Decoded message: "+decmsg);
            }
    }
     
    Denixxx нравится это.
  4. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    191
    Спасибо, конечно.
    Но в яваскрипте нет функций
    Вот второй вариант интересен. Но в яваскрипте вроде бы нет классов?
    Если этот код как-то работает, то не затруднит ли показать как, хотя бы в песочнице learn.javascript.ru/play
     
  5. Android

    Android

    Регистр.:
    10 июн 2006
    Сообщения:
    603
    Симпатии:
    518
    Кто мешает написать самому или взять готовую реализацию:
    http://xdan.ru/javascript-analog-funkcii-php-base64_decode-i-base64_encode.html
    http://webonrails.ru/post/229500600188932475/
    http://phpjs.org/functions/base64_decode/
    http://phpjs.org/functions/base64_encode/

    Ну я привел пример кода на джаве, смысл в том что код символа строки изменяется определенным алготимом по ключу. Самый правильный вариант использовать готовые библиотеки для
    https://code.google.com/p/crypto-js/
    https://github.com/wwwtyro/cryptico
    там есть примеры использования обратимого шифрования:
    Код:
    <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
    <script>
        var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
    
        var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
    </script>