RSA算法的密鑰由公鑰和私鑰組成,公鑰用于加密,私鑰用于解密。顧名思義,公鑰就是可以進行公開的密鑰,一般可以公開給你的合作夥伴;私鑰就是私有的,也就是隻有你知道的,你的合作夥伴通過你提供的公鑰進行加密的内容隻有你能進行解密,這樣也就隻有你知道他發的是什麼内容。用于加密的公鑰和私鑰是配對的。這樣的一對密鑰在Java中由<code>java.security.KeyPairGenerator</code>來産生。以下是一個生成密鑰對的示例,該示例中還将生成的密鑰對分别儲存到了檔案中。
加密的過程跟使用AES算法進行加密的過程類似,唯一需要注意的是使用存儲起來的公鑰時需要使用<code>X509EncodedKeySpec</code>進行封裝,然後通過<code>KeyFactory.generatePublic(KeySpec)</code>進行生成。
解密是使用的密鑰對中的私鑰,其使用方法跟AES算法進行解密類似。 存儲起來的私鑰需要通過<code>PKCS8EncodedKeySpec</code>加載,然後通過<code>KeyFactory.generatePrivate(KeySpec)</code>生成私鑰。
(本文由Elim寫于2017年5月22日)