Столкнулся с проблемой асиметричного шифрования файлов, есть файл ко-вом 100к строк в каждом столбце по 144 символа, шифрование происходит долго, очень долго, можно ли как-то его ускорить? Возможно есть другие варианты асиметричного шифрования файлов? Или я вообще иду не в том направлении? Нужно чтобы файлы на серваке были в зашифрованном виде
как у меня сделано сейчас:
1) Юзер отправляет файл на сервер
2) Данные проверяется на сервере
3) После успешной проверки происходит шифрование файла и его сохранение
Если вы прямо весь файл шифруете ассиметричным ключом, то конечно это долго и никто так не делает. Нужно сгенерировать случайный ключ для симметричного шифрования и зашифровать файл им, а асимметрично шифровать только ключ.
А самый правильный путь — взять что-нибудь готовое.
Lynn «Кофеман», Сама генерация ключа происходит быстро, а вот шифрование -- долго, 800 строк файла это примерно 2-3 секунды, то к примеру 14 тысяч строк уже не выносимо ждать, молчу про 100к(
Может альтернативы есть какие-то?
Lynn «Кофеман», Ну я потестил, 1к строк -- 2224мс, 2к строк -- 8038мс, 3к строк -- 20744мс. Может я что-то не так делаю, надо было с самого начала код скинуть, хотя я вроде как сделал и скопипастил все как в доке.
const main = async () => {
const date1 = Date.now()
const PlainText = fs.readFileSync('./2.txt', 'utf-8')
let PassPhrase = "WSK78vzPJ4bfecJWgVmzbcyYOAdU37uxpvBG5PFRetqqITCY08vXUH5xcWCyF7giSj1An0ncY7U2xP9gHsa4DyHPYyH3SCfe3Ax8V6l2lWg9AgCjZvwL2KnccDCCFTfeRuUVj7CVxTX6RQRimgA3pnKdrXsXeWB1GWtY9DjTYzk=";
let Bits = 1024;
let MattsRSAkey = cryptico.generateRSAKey(PassPhrase, Bits);
let MattsPublicKeyString = cryptico.publicKeyString(MattsRSAkey);
let EncryptionResult = cryptico.encrypt(PlainText, MattsPublicKeyString);
const date2 = Date.now()
console.log(EncryptionResult)
console.log(date2 - date1)
}
Omg, так это подправленный код десятилетней давности с самостоятельной реализацией на js. Выкиньте его и используйте обычные примитивы модуля crypto. Они берутся из openssl и будут работать гораздо быстрее