Java中有兩種加密方法:RSA和AES。
RSA是一種非對稱加密算法。它涉及到一個(gè)公鑰和一個(gè)私鑰。公鑰可以公開,而私鑰必須保密。RSA算法采用了一對密鑰,分別為公鑰和私鑰。通過公鑰加密的數(shù)據(jù)只有通過私鑰才能解密,同樣的,通過私鑰加密的數(shù)據(jù)也只有通過公鑰才能解密。使用RSA算法,可以實(shí)現(xiàn)數(shù)據(jù)的安全傳輸。
import javax.crypto.Cipher; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; public class RSAEncryption { public static void main(String[] args) throws Exception { // 生成公鑰和私鑰 KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(1024); KeyPair keyPair = keyPairGen.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); // 待加密的數(shù)據(jù) String data = "Hello, World!"; // 加密 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] encryptedData = cipher.doFinal(data.getBytes()); // 解密 cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] decryptedData = cipher.doFinal(encryptedData); // 輸出解密后的數(shù)據(jù) System.out.println(new String(decryptedData)); } }
AES是一種對稱加密算法。它涉及到一個(gè)密鑰,該密鑰用于加密和解密數(shù)據(jù)。由于該密鑰必須保密,因此只有知道密鑰的人才能加密和解密數(shù)據(jù)。使用AES算法,可以實(shí)現(xiàn)數(shù)據(jù)的安全傳輸。
import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class AESEncryption { public static void main(String[] args) throws Exception { // 密鑰 String key = "1234567890abcdef"; SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES"); // 待加密的數(shù)據(jù) String data = "Hello, World!"; // 加密 Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); byte[] encryptedData = cipher.doFinal(data.getBytes()); // 解密 cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); byte[] decryptedData = cipher.doFinal(encryptedData); // 輸出解密后的數(shù)據(jù) System.out.println(new String(decryptedData)); } }
上一篇vue文檔是什么