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

标签 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)

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

最佳答案

tl;dr 使用公钥加密。确保您的私钥安全。

不幸的是,这些方法的命名很糟糕。 privateEncrypt 的名称应类似于 signpublicDecrypt 的名称应类似于 verify

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

如果您想对某些内容保密,除了特定 key 的所有者之外,您需要使用他们的公钥来加密消息。因此,如果 Alice 想要接收加密消息,她将分享她的公钥 A_pub 和她的 key A_priv,她将保密。消息crypto.publicEncrypt(A_pub, buffer)。然后,她将使用 crypto.privateDecrypt(A_priv, buffer) 解密该消息。

以另一种方式进行操作被称为 digitial signature

关于node.js - 在 Node.js 中使用私钥/公钥加密文件最合适、最安全的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55363375/

相关文章:

encryption - 使用命令行对文件夹进行GPG加密和解密

javascript - 自动解析json属性为新对象

javascript - Express 4 Hook 应用程序关闭的方法?

android - 如何防止我的 Android 应用程序被嗅探?

c++ - 如何初始化 RSA::PrivateKey?

python - 如何在 Python 中实现 OpenSSL 功能?

node.js - 如何为 Node 设置预加载文件?

node.js - MAC - NPM - VSTS - 将注册表和 token 插入全局 npmrc 文件

encryption - 在 ssl 之上的应用层加密数据

php - 使用 PostgreSQL 的 gnupg 扩展解密时遇到问题