作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想知道在我的 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
和她的私钥 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/
我是一名优秀的程序员,十分优秀!