参考答案:
在 Java 中,加密算法主要分为两类:对称加密算法和非对称加密算法。Java 提供了强大的加密支持,通常使用 Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 来实现各种加密算法。以下是 Java 中常用的几种加密算法:
对称加密算法使用相同的密钥进行加密和解密,因此密钥的保密性至关重要。常用的对称加密算法有:
1Key key = new SecretKeySpec("1234567890123456".getBytes(), "AES"); 2Cipher cipher = Cipher.getInstance("AES"); 3cipher.init(Cipher.ENCRYPT_MODE, key); 4byte[] encrypted = cipher.doFinal("Hello World".getBytes());
1Key key = new SecretKeySpec("12345678".getBytes(), "DES"); 2Cipher cipher = Cipher.getInstance("DES"); 3cipher.init(Cipher.ENCRYPT_MODE, key); 4byte[] encrypted = cipher.doFinal("Hello World".getBytes());
1Key key = new SecretKeySpec("123456789012345678901234".getBytes(), "DESede"); 2Cipher cipher = Cipher.getInstance("DESede"); 3cipher.init(Cipher.ENCRYPT_MODE, key); 4byte[] encrypted = cipher.doFinal("Hello World".getBytes());
1Key key = new SecretKeySpec("aSecretKey".getBytes(), "Blowfish"); 2Cipher cipher = Cipher.getInstance("Blowfish"); 3cipher.init(Cipher.ENCRYPT_MODE, key); 4byte[] encrypted = cipher.doFinal("Hello World".getBytes());
非对称加密算法使用一对密钥——公钥和私钥,分别用于加密和解密。公钥可以公开,而私钥必须保密。常用的非对称加密算法有:
1KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); 2keyPairGenerator.initialize(2048); 3KeyPair keyPair = keyPairGenerator.generateKeyPair(); 4PublicKey publicKey = keyPair.getPublic(); 5PrivateKey privateKey = keyPair.getPrivate(); 6 7Cipher cipher = Cipher.getInstance("RSA"); 8cipher.init(Cipher.ENCRYPT_MODE, publicKey); 9byte[] encrypted = cipher.doFinal("Hello World".getBytes());
1KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA"); 2keyPairGenerator.initialize(2048); 3KeyPair keyPair = keyPairGenerator.generateKeyPair();
1KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC"); 2keyPairGenerator.initialize(256); 3KeyPair keyPair = keyPairGenerator.generateKeyPair();
哈希算法通过将任意大小的输入映射为固定大小的输出,通常用于生成数据的“指纹”,验证数据完整性等。常见的哈希算法有:
1MessageDigest md5 = MessageDigest.getInstance("MD5"); 2byte[] hash = md5.digest("Hello World".getBytes());
1MessageDigest sha256 = MessageDigest.getInstance("SHA-256"); 2byte[] hash = sha256.digest("Hello World".getBytes());
1SecretKeySpec keySpec = new SecretKeySpec("secretKey".getBytes(), "HmacSHA256"); 2Mac mac = Mac.getInstance("HmacSHA256"); 3mac.init(keySpec); 4byte[] hmac = mac.doFinal("Hello World".getBytes());
1KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DH"); 2keyPairGenerator.initialize(2048); 3KeyPair keyPair = keyPairGenerator.generateKeyPair(); 4
最近更新时间:2024-12-25