我想知道在我的 Node.js 应用程序中加密和解密文件时应该在哪种用例中使用这些方法。
问题
我想加密我服务器中的一些文件,在询问其他人后,我意识到最推荐的方法是使用私钥加密这些文件(大)。
现在,我正在寻找 docs并看到了这些方法
crypto.publicEncrypt(pubKey, buffer)
crypto.publicDecrypt(pubKey, buffer)
crypto.privateEncrypt(privKey, buffer)
crypo.privateDecrypt(privKey, buffer)
这非常令人困惑,因为我不知道现在必须使用它们中的哪些,嗯...我不知道安全地执行此操作的最合适方法是什么。
最佳答案
tl;dr 使用公钥加密。确保您的私钥安全。
不幸的是,这些方法的命名很糟糕。 privateEncrypt
的名称应类似于 sign
,publicDecrypt
的名称应类似于 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/