2016-06-01 48 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 
或者加密