在Java中,我們經常需要使用公鑰和私鑰進行加密和解密操作。公鑰和私鑰是非對稱加密算法的核心部分。
公鑰和私鑰都是一對密鑰,私鑰由用戶自己保管,用于解密和簽名,公鑰則可以公開,用于加密和驗簽。
//使用RSA算法生成公鑰和私鑰 KeyPairGenerator keyGen=KeyPairGenerator.getInstance("RSA"); keyGen.initialize(1024); KeyPair keyPair=keyGen.generateKeyPair(); PublicKey publicKey=keyPair.getPublic(); PrivateKey privateKey=keyPair.getPrivate();
在上面的代碼中,我們使用Java提供的RSA算法生成了公鑰和私鑰。其中,我們指定了密鑰長度為1024位。
//使用公鑰加密數據 String plainText="Hello World"; Cipher cipher=Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE,publicKey); byte[] encryptedBytes=cipher.doFinal(plainText.getBytes());
在上面的代碼中,我們使用公鑰將明文數據進行加密,并得到了加密后的字節數組。
//使用私鑰解密數據 cipher.init(Cipher.DECRYPT_MODE,privateKey); byte[] decryptedBytes=cipher.doFinal(encryptedBytes); String decryptedText=new String(decryptedBytes);
在上面的代碼中,我們使用私鑰將加密后的字節數組進行解密,并得到了解密后的明文數據。
通過使用公鑰和私鑰進行加密和解密操作,我們可以保證數據的安全性和完整性。