Я не очень разбираюсь в веб-сайтах и особенно в безопасности веб-сайтов.
Прежде чем говорить о проблеме, давайте объясним контекст:
Я создал веб-страницу, которая должна быть платформой с формой заказа X, которую должен заполнить какой-то клиент A, с некоторыми критическими полями Y, которые должны быть зашифрованы. Затем веб-сервер отправит письмо с X + Y продавцу B, чтобы он мог обработать заказ.
Что я сделал:
Я создал форму с помощью Spring MVC с контроллером (на Java) и шаблоном представления HTML. Это руководство немного помогло мне: https://spring.io/guides/gs/handling-form-submission/. Когда A отправляет X+Y, я шифрую Y (с симметричным шифрованием TEA) в контроллере (поэтому я предполагаю, что это явно на стороне сервера), а затем отправляю его продавцу по почте. Затем продавец расшифровывает его тем же ключом, который использовался для расшифровки.
Проблема:
Я хотел бы, чтобы это было действительно безопасно, поэтому я не хочу отправлять Y на сервер, а затем шифровать его, я хочу зашифровать его на стороне клиента, а затем отправить его на контроллер.
Является ли клиентская сторона Javascript единственным решением для этого? Я бы предпочел сделать это на Java на стороне клиента, потому что я хочу, чтобы шифрование было на стороне клиента, а также чтобы исходный код, содержащий алгоритм шифрования, был скрыт от всех (что, я думаю, не так в HTML и Javascript).
Итак, для шифрования на стороне клиента и скрытого исходного кода возможно ли это сделать с помощью Spring MVC и Java или с помощью Javascript, или у вас есть какие-либо другие предложения?