OpenSSL公钥解密文件



我的理解是,公钥可以用于加密,私钥可以用于解密,公钥不能解密由同一公钥加密的文件。我是误解了还是做错了什么?

1) 生成密钥

openssl genrsa-out/private.pem 2048

2) 生成公钥

openssl rsa-in/private.pem-pubout>/public.pem

3) 加密小型文本文件

openssl enc-in/in.txt-out/out.enc-e-aes256-k/public.pem

4) 使用PUBLIC密钥解密文件

openssl enc-in/out.enc-out/out.txt-d-aes256-k/public.pem

最后一步可以解密"out.enc"文件。不是我想要或期望的。

尽管这个问题很老了,但我必须声明TS做对了:公钥无法解密由同一公钥加密的文件。只有相应的私钥可以。

真正的问题是AES不是公钥算法。它使用相同的密钥进行加密和解密,并且密钥可以是任意的字节序列。

否。这是错误的。这两个密钥(公钥和私钥)可以用于加密和解密。关键是你不能用同一把钥匙逆转操作。

例如

encrypt(doc, publickey) -> decrypt(crypteddoc, publickey)  // fails
encrypt(doc, privatekey) -> decrypt(crypteddoc, privatekey) // fails
encrypt(doc, publickey) -> decrypt(crypteddoc,privatekey) // works
encrypt(doc, privatekey) -> decrypt(crypteddoc, publickey) // works

从技术上讲,你共享和公开哪个密钥并不重要,只要你公开了其中一个密钥,你就永远不能共享另一个私钥。

最新更新