Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > зашифровать небольшой текст


Автор: Vovan222 26.5.2011, 21:54
Всем привет, подскажите есть ли в JS встроенные функции для зашифровки простого текста. Например такого:
Код

var source = 'nity';

На выходе чтобы получилось не очень длинная комбинация символов.

Автор: bars80080 26.5.2011, 23:48
с какой целью?

для нормального прохождения в урл - 
text = encodeURIComponent(text)

Автор: Vovan222 27.5.2011, 06:45
bars80080, да нет просто зашифровать, желательно с помощью пароля, а затем расшифровать

Автор: Котокобра 27.5.2011, 07:30
тебе нужно шифрование по ключу. 
есть два классических варианта:

перестановка букв местами, например 1 с 3, 2 с 1, 3 со 2. дальше схема повторяется. то есть, разбиваешь текст на блоки и внутри блока меняешь буквы местами по определенной схеме (длину ключа, понятное дело, можно выбрать любую).

второй вариант - прибавляешь определенное значение к порядковому номеру буквы, как же меняя числа: к первой - 2, ко второй - 7, к третьей - 3, и заменяешь буквы полученными в результате вычислений. 

потом по ключу расшифровываешь обратно. 


такие вот способы. можешь еще пофантазировать, и сделать, например, чтобы сначала ключ применялся в прямом порядке, потом в обратном, потом потом возведенным в квадрат и т.д... в общем, враг не расшифрует))

Автор: Vovan222 27.5.2011, 09:09
Котокобра, а нет ли каких-нибудь готовых библиотек или JS функций?

Автор: Котокобра 27.5.2011, 09:10
Vovan222, ни разу не пользовался.

Автор: bars80080 27.5.2011, 09:56
Цитата(Vovan222 @  27.5.2011,  06:45 Найти цитируемый пост)
да нет просто зашифровать, желательно с помощью пароля, а затем расшифровать 

а задача вообще какая? специальных функций криптования на js нет, потому что это бессмысленно с точки зрения безопасности. криптующий код всё равно уже у клиента, он всегда сможет подсмотреть метод 

Автор: iff 27.5.2011, 13:06
Ну и что, если он сможет подсмотреть метод? Смысл шифрования в том, что бы злоумышленник, зная зашифрованные данные и алгоритм не сможет расшифровать данные, не зная пароля. Например можно реализовать шифрацию по алгоритму ГОСТ 28147-89.
Цитата(Котокобра @  27.5.2011,  07:30 Найти цитируемый пост)
перестановка букв местами, например 1 с 3, 2 с 1, 3 со 2. дальше схема повторяется. то есть, разбиваешь текст на блоки и внутри блока меняешь буквы местами по определенной схеме (длину ключа, понятное дело, можно выбрать любую).

второй вариант - прибавляешь определенное значение к порядковому номеру буквы, как же меняя числа: к первой - 2, ко второй - 7, к третьей - 3, и заменяешь буквы полученными в результате вычислений. 

Это слишком простой алгоритм.
Vovan222, 
Цитата(Vovan222 @  26.5.2011,  21:54 Найти цитируемый пост)
функции для зашифровки простого текста.

Цитата(Vovan222 @  27.5.2011,  06:45 Найти цитируемый пост)
желательно с помощью пароля, а затем расшифровать 

Если текст простой (в примере он состоит из 4 символов) то зачем его шифровать? Длина ключа в нормальных алгоритмах больше 4 байт. Т.е. данные меньше пароля.
Идея шифрования заключается в том, что-бы зашифрованные данные передать по незащищенному каналу, а ключ передать по защищенному. Причем, длина ключа много меньше длины данных - иначе смысл шифровать, если выгоднее будет сразу исходные данные передать по защищенному каналу.

Добавлено через 1 минуту и 41 секунду
Вот например страница, зашифрованная по ГОСТ 28147-89. Пароль: 5d8da5aa60942b17ccd6b2a677170e9bcb714f664daddb85c91a71ef26cf50c8

http://my-soft2008.narod.ru/shifr/about/page.html

Автор: Vovan222 27.5.2011, 13:49
iff, да мне в общем то и нужен простой алгоритм, ну ладно придется написать свою функцию раз в JS такого нет.
Всем спасибо за ответы.

Автор: iff 27.5.2011, 14:12
Я имел в виду, что применяя такой алгоритм, данные будут слабо защищены.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)