Java RSA公鑰和私鑰是一種非對稱加密算法,可用于數據的加密和解密。在RSA算法中,公鑰用于加密數據,私鑰用于解密數據。任何人都可以使用公鑰進行加密,但只有擁有私鑰的人才能解密數據。
//生成RSA密鑰對 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(2048); KeyPair kp = kpg.generateKeyPair(); //獲取公鑰和私鑰 PublicKey publicKey = kp.getPublic(); PrivateKey privateKey = kp.getPrivate();
創建RSA密鑰對需要使用Java的KeyPairGenerator類。為了更好的安全性,密鑰長度應該設置為2048位或以上。在KeyPair對象中,getPublic()方法返回公鑰,getPrivate()方法返回私鑰。
//使用公鑰加密數據 byte[] data = "Hello, World!".getBytes("UTF8"); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] encrypted = cipher.doFinal(data); //使用私鑰解密數據 Cipher cipher2 = Cipher.getInstance("RSA"); cipher2.init(Cipher.DECRYPT_MODE, privateKey); byte[] decrypted = cipher2.doFinal(encrypted); String plaintext = new String(decrypted, "UTF8"); System.out.println(plaintext); //輸出Hello, World!
使用RSA加密數據需要創建一個Cipher對象,并指定加密模式和公鑰。加密后的數據被存儲在一個byte數組中。使用私鑰解密數據時,需要創建另一個Cipher對象,并指定解密模式和私鑰。密文信息被解密后,可以使用UTF8字符集轉換為明文格式。
總之,Java RSA公鑰和私鑰是一種強大的加密算法,可用于確保數據安全。它可以被用于安全性要求較高的應用程序中,如在線銀行、電子商務、數據交換等場合。