欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Spring Boot 加密和解密 (II)

最编程 2024-06-26 19:15:55
...

非对称加密

非对称加密是指使用不同的密钥对数据进行加密和解密。通常,这些密钥称为公钥和私钥。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加密库可以让我们使用更多的加密算法和密钥长度。