什么是使用Node.js中的私钥/公钥加密文件的最合适,最安全的方法

时间:2019-03-26 17:48:01

标签: node.js encryption public-key-encryption private-key public-key

我想知道在哪种用例中,在我的node.js应用程序中加密和解密文件时应该使用这些方法。

问题

我想对服务器中的某些文件进行加密,问了其他人之后,我意识到最推荐的方法是使用私钥对那些文件(大文件)进行加密。

现在,我正在寻找docs,并看到了这些方法

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

这非常令人困惑,因为我不知道我现在必须使用什么,嗯...我不知道安全地执行此操作的最合适方法是什么。

1 个答案:

答案 0 :(得分:2)

tl; dr 使用公钥加密。保持私钥安全。

不幸的是,这些方法命名不当。 privateEncrypt应该被称为sign,而publicDecrypt应该被称为verify

使用公钥加密(也称为非对称加密)时,可以使用一个密钥来编写密码,而另一个密钥可以撤消该操作。您的公开密钥可能是所有人都知道的,而您的私有密钥是秘密的。

如果要保守秘密,除了某个密钥的所有者以外,您想使用公钥对邮件进行加密。因此,如果爱丽丝想要接收加密的消息,则她将共享她的公共密钥A_pub和秘密密钥A_priv,她将自己保密。.您将对消息crypto.publicEncrypt(A_pub, buffer)进行加密。 。然后,她将使用crypto.privateDecrypt(A_priv, buffer)解密该消息。

以另一种方式执行此操作称为digitial signature