Как я могу передать данные от клиента J2ME на сервер без предварительной фиксации ключа? - PullRequest
0 голосов
/ 22 мая 2011

Я программист J2ME.Теперь мой проект связан с отправкой данных на сервер по HTTP.Здесь я шифрую данные на стороне J2ME, используя библиотеку Bouncy Castle (Triple DES).Я также поддерживаю кодирование на стороне сервера.

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

Но у меня есть требование, что ключ генерируется случайным образом, неизвестно пользователю.

Если я шифрую данныес каким-то ключом в части J2ME, тогда как сервер может расшифровать его, не зная ключа?Или есть какой-то другой механизм, который я могу использовать для решения этой проблемы?Может ли мне здесь помочь асимметричная криптография?

1 Ответ

2 голосов
/ 22 мая 2011

Способ работы асимметричной криптографии заключается в следующем:

  1. Сервер генерирует пару открытых / закрытых ключей
  2. Он отправляет открытый ключ наclient
  3. Клиент использует открытый ключ для шифрования секретного сообщения
  4. Сервер использует закрытый ключ для расшифровки сообщения.

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

...