Каков наиболее подходящий и безопасный способ шифрования файлов с использованием закрытых / открытых ключей в Node.js - PullRequest
2 голосов
/ 26 марта 2019

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

Проблема

Я хочу зашифровать некоторые файлы на своем сервереСпросив других людей, я понял, что наиболее рекомендуемый метод - это шифрование этих файлов (больших) с помощью закрытого ключа.

Теперь я искал документы и увидел эти методы

  • crypto.publicEncrypt(pubKey, buffer)
  • crypto.publicDecrypt(pubKey, buffer)
  • crypto.privateEncrypt(privKey, buffer)
  • crypo.privateDecrypt(privKey, buffer)

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

1 Ответ

2 голосов
/ 26 марта 2019

tl; dr шифруется открытым ключом. Храните свой закрытый ключ в безопасности.

К сожалению, эти методы плохо названы. privateEncrypt должен называться как sign, а publicDecrypt должен называться verify.

При использовании шифрования с открытым ключом (также известного как асимметричное шифрование) один ключ может использоваться для записи шифра, а другой ключ может отменить эту операцию. Ваш открытый ключ потенциально известен всем, а ваш закрытый ключ является секретным.

Если вы хотите сохранить что-то в секрете, кроме как от владельца определенного ключа, вы хотите зашифровать сообщение с помощью их открытого ключа. Так что, если Алиса захочет получать зашифрованные сообщения, она поделится своим открытым ключом A_pub и своим секретным ключом A_priv, она будет хранить при себе. Вы зашифруете свое сообщение crypto.publicEncrypt(A_pub, buffer). Затем она расшифрует это сообщение с помощью crypto.privateDecrypt(A_priv, buffer).

Выполнение этого другим способом называется цифровой подписью .

...