Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Шифрование строки в ключом (https://javascript.ru/forum/misc/39568-shifrovanie-stroki-v-klyuchom.html)

Dorian_bs 04.07.2013 13:10

Шифрование строки используя ключ
 
Всем привет!
Сейчас работаю над синхронизацией моего движка на php и node.js.
Меня интересует, как можно зашифровать строку (хэш массив) средствами php и расшифровать ее через JavaScript на сервере node.js используя уникальный ключ.

То есть у нас есть строка - А. И ключ - Б. Получаем код через php - С.
Передаем строку на сервер.
Расшифровываем средствами JavaScript используя специальный ключ Б и зашифрованный код С для получения стоки А.

Жду комментариев и ссылок)
Заранее спасибо!

danik.js 04.07.2013 13:57

А от кого шифруешь то? От себя самого?

Dorian_bs 04.07.2013 14:15

danik.js, да.
У меня есть index.php.
Так же у меня есть уникальный "код", который пользователь не должен знать. Ибо он не должен иметь возможности его корректировать.

У меня установлен модуль SockJS на Node.JS.
Необходимо, что бы клиент отправлял данный "код" для выполнения на сервере node определенный действий.

На клиенте путем JS я создаю объект класса для работы с сервером.

var sock = new SockJS('http://*.*.*.*:3000/echo');


Далее я опять же используя JS передаю "код", например:

sock.send('мой зашифрованный код');


Сервер node это принимает и далее выполняет необходимые действия по расшифровке и т. п.

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

danik.js 04.07.2013 15:36

В чем смысл гонять код туда-сюда? Ты (сервер) его шлешь клиенту, клиент шлет тебе (серверу). В чем смысл?

skrudjmakdak 04.07.2013 15:44

Цитата:

Сообщение от Dorian_bs (Сообщение 260116)
скажем использовать чужой id для управление чем либо.

а сессия чем не устраивает? по ней и идет идентификация пользователя на сервере

Dorian_bs 04.07.2013 16:23

danik.js, skrudjmakdak, так как это два разных сервера c разными движками.
Движок сайта - php (httpd)
Движок сокетов - sockjs->node.js (node)

danik.js 04.07.2013 16:29

Ну так используй куку авторизации в качестве своего "ключа". А еще можно же сессию хранить в бд. Разве для node.js нет драйвера mysql?

skrudjmakdak 04.07.2013 17:11

ну если сервера два и они обращаются друг к другу, то ИМХО!! можно и без бд обойтись, а файликом.. хотя что будет быстрей отрабатывать, не знаю)) не тестил..

skrudjmakdak 04.07.2013 17:13

вот статейка.. с курлом (мона еще найти):
http://blog.yousoft.ru/2010/03/31/is...ies-2-sposoba/

danik.js 04.07.2013 17:40

Я говорю что довольно часто сессия хранится в бд. Так что через куку можно легко найти сессию юзера. Причем тут файлики.А причем тут курл - вобще не понятно..

Dorian_bs 04.07.2013 17:44

skrudjmakdak, спасибо! Посмотрю!)

Dorian_bs 04.07.2013 17:47

danik.js, можно и с бд...
Но я пытаюсь найти самый оптимальный способ.
Мне кажется, что напрягать запросами бд глупо, если можно воспользоваться основным функционалом модуля sockjs и передавать данные на прямую в зашифрованном виде

danik.js 04.07.2013 18:18

Куда передавать? Какие данные? Ты бредишь...
Какие напряги? Один запрос в бд - это для тебя напряжно?

Dorian_bs 04.07.2013 18:54

"Куда передавать?"
На созданный нами сервер, расположенный на :3000 порту.

"Какие данные?"
На клиенте следующим образом:

sock = new SockJS('http://*.*.*.*:3000/echo');

sock.send(JSON.stringify({
      type: 'connect',
      user_session: '***********',
      user_id: '*****',
      user_browser: '***********',
      // ...
}));


"Ты бредишь"
Ваша завышенная самооценка не допускает мысли, что возможно именно Вы являетесь виновником того, что вы не понимаете сути.

"Какие напряги?"
Это сравнимо с тем, что Вы находитесь в магазине с йогуртом в руках. Перед Вами 2 кассы.
На одной - есть очередь. На другой - нету.
Вы идете на ту, где очередь больше.

Мне это напоминает быдлокодинг "лишь бы работало".
Какой смысл дергать Базу данных, если есть возможность передавать данные напрямую через sockjs.
Мне Вам архитектуру объяснить?

Сейчас задача в следующем:

[ Клиент Сервер ➨ Клиент ]

Как можно зашифровать данные зеленого цвета.

Вы же предлагаете:

[ Клиент ➨ Сервер ➨ БД Сервер ➨ Клиент ]

Думаю не нужно Вам объяснять, зачем я использовал красный цвет.

Я могу и 40 запросов написать. Только я пытаюсь делать качественный продукт.

danik.js 04.07.2013 19:18

Не не. Твоя схема:
Сервер ->(данные) клиент - >(данные) Сервер
Моя схема:
Сервер ->(id) клиент ->(id) Сервер

Че надежней (и разумней) слать через клиента - все данные или только айдишник? Зачем через клиента гнать инфу которую можно получать прямо с сервера (из бд)? Вот это и есть быдлокодинг.

skrudjmakdak 04.07.2013 19:37

ммм. я чет запутался..
вы говорите вот что: [ Клиент ➨ Сервер ➨ Клиент ]
а разве может сервер отдавать ответ клиенту без его запроса?
именно вот эта часть: Сервер ➨ Клиент

клиент 1 дергает сервер, сервер изменяет данные, клиент 2 дергает этот же сервер и получает новые данные.. только нужно "сообщить" этим двум клиентам, что бы они слушали только друг друга

вам так надо??

Dorian_bs 04.07.2013 19:39

danik.js, убедили. Спасибо!

Dorian_bs 04.07.2013 19:46

skrudjmakdak, примерно да.
В моем случае я держу на сервере node информацию о пользователях. Их сессии, и пр.
У одного пользователя есть одна или много сессий. У каждой сессии есть свои sock соединения (на каждую вкладку).
По этому изначально стоял вопрос и том, как передавать данные (id, название сессии и пр.) для обновления данных без задействования каких либо других ресурсов


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