非对称加密
非对称加密是指使用不同的密钥对数据进行加密和解密。通常,这些密钥称为公钥和私钥。Spring Boot提供了多种非对称加密算法,包括RSA和DSA等。下面是一个使用RSA非对称加密算法进行加密和解密的示例。
首先,我们需要添加Bouncy Castle依赖项。在Maven中,可以将以下依赖项添加到pom.xml文件中。
代码语言:javascript复制<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.68</version>
</dependency>
接下来,我们需要生成RSA密钥对。可以使用以下代码生成密钥对。
代码语言:javascript复制KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA", "BC");
SecureRandom random = SecureRandom.getInstanceStrong();
keyGen.initialize(2048, random);
KeyPair pair = keyGen.generateKeyPair();
然后,我们需要使用公钥对数据进行加密,使用私钥对加密后的数据进行解密。可以使用以下代码实现加密和解密。
代码语言:javascript复制// 加密
byte[] input = "hello world".getBytes();
Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding", "BC");
cipher.init(Cipher.ENCRYPT_MODE, pair.getPublic());
byte[] cipherText = cipher.doFinal(input);
// 解密
cipher.init(Cipher.DECRYPT_MODE, pair.getPrivate());
byte[] plainText = cipher.doFinal(cipherText);
在上面的示例中,我们使用了Bouncy Castle加密库,以便对数据进行加密和解密。使用Bouncy Castle加密库可以让我们使用更多的加密算法和密钥长度。