Мне нужно изменить существующий внешний (угловой) код, который включает загрузку файлов на сервер. Теперь файлы необходимо зашифровать перед загрузкой.Javascript formdata: шифровать файлы перед добавлением
В настоящее время подход использует FormData для добавления нескольких файлов и отправить их в одном запросе, как показано ниже:
function uploadFiles(wrappers){
var data = new FormData();
// Add each file
for(var i = 0; i < wrappers.length; i++){
var wrapper = wrappers[i];
var file = wrapper.file;
data.append('file_' + i, file);
}
$http.post(uri, data, requestCfg).then(
/*...*
Я использую Forge в других проектах, но никогда в этом виде контекста и на самом деле не вижу, как шифровать файлы «на лету» и все еще добавлять их в качестве содержимого FormData.
Forge предоставляет простой API:
var key = forge.random.getBytesSync(16);
var iv = forge.random.getBytesSync(8);
// encrypt some bytes
var cipher = forge.rc2.createEncryptionCipher(key);
cipher.start(iv);
cipher.update(forge.util.createBuffer(someBytes));
cipher.finish();
var encrypted = cipher.output;
Бэкэнд recieves файлы с помощью Грозная и все файл hanlding уже подключен. Поэтому я хотел бы придерживаться существующей интерфейсной логики, но просто вставить логику шифрования. В этом случае не все данные формы должны быть зашифрованы ... Я еще не нашел хорошего результата, чтобы подойти к этому.
Предложения приветствуются!
Какая цель? Вы пытаетесь защитить файлы в пути или защитить файлы от лица, контролирующего веб-сервер? – Quentin
не ваш вопрос, но вы посмотрели на собственный [crypto] (https://www.w3.org/TR/WebCryptoAPI/) API? (в случае, если ваши пользователи имеют надежные последние браузеры, они обеспечивают реальную криптографическую случайность и встроенные алгоритмы) – Touffy
Hi @Quentin, действительно, удаленный сервер не может читать содержимое. Это промежуточный узел между браузером и фактическим процессором обработки. Медицинские данные кажутся обидчивыми относительно возможного злоупотребления. – Jem