Другие ответы в настоящее время, по-видимому, упускают суть этого: «Мы отправляем этот пакет нашему поставщику как VendorPub (SensitiveData), только они могут использовать эти данные». Другими словами, вы являетесь ретранслятором, который обрабатывает данные как черный ящик.
То, что вы описываете, выполнимо, если объем данных не очень велик. Помните, что вы не можете заставить пользователей ждать, пока ваш JavaScript пойдет на попятную.
Между прочим,
RSA4096 смехотворно огромно. 2048 год является полноценным на данный момент, а 3000 - все, что должно быть хорошо для 30+ лет. Но больше силы для тебя. Обычный способ обойти расходы на открытый ключ - это зашифровать симметричный (DSA) ключ с использованием RSA - таким образом ваше шифрование фактических данных происходит быстро, и единственной медленной частью является дешифрование (более короткого) ключа. Шифрование с асимметричным ключом намного медленнее, чем симметричное.
Что бы вы ни решили реализовать, убедитесь, что вы правильно настроили шифрование в коде JS.
Вы также должны заметить, что на самом деле это не способ защитить пользователей от вас ; Вы управляете веб-сервером, чтобы вы могли отправлять пользователям JavaScript-код, который доставляет их личные данные вам с помощью ключа, который вы контролируете. Пользователи вряд ли заметят.