2016-06-01 90 views
0

这是我的测试用例。是RSA加密和解密只用私钥通过openssl,是否正确?

$ openssl genrsa -out private.pem 2048 
$ openssl rsa -in private.pem -outform PEM -pubout -out public.pem # but I don't use it. 

$ touch raw_data.log && echo 123456 >> raw_data.log 
$ openssl rsautl -encrypt -in raw_data.log -inkey private.pem > enc.raw_data.log 
$ openssl rsautl -decrypt -in enc.raw_data.log -inkey private.pem > dec.raw_data.log 

$ cat raw_data.log 
$ cat dec.raw_data.log 

为什么我只能用RSA私钥加密&解密数据。(不公钥来加密数据)

它是正确的吗?

回答

1

如果你读了man page for openssl rsautl,你会发现,你可以使用pubin选择使用公共密钥

加密 - INKEY文件输入密钥文件,默认情况下它应该成为RSA私钥。

- pubin输入文件是RSA公钥。

所以,你可以使用私钥(默认)或公共密钥(与pubin选项)

openssl rsautl -encrypt -inkey pubkey.pem -pubin -in raw_data.log -out enc.raw_data.log 
或者加密