我想知道在我的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
。
使用公钥加密(也称为非对称加密)时,可以使用一个密钥编写密码,另一个密钥可以撤消该操作。您的公钥可能为每个人所知,您的私钥是秘密的。
如果您想要保密,除了某个密钥的所有者之外,您希望使用其公钥加密消息。因此,如果爱丽丝想要收到加密的消息,她将分享她的公钥A_pub
和她的秘密密钥A_priv
,她会保持自己..你将加密你的消息crypto.publicEncrypt(A_pub, buffer)
。然后,她将用crypto.privateDecrypt(A_priv, buffer)
解密该消息。
以另一种方式做它被称为digitial signature。