springboot中加密
时间: 2023-11-05 15:03:27 浏览: 42
在Spring Boot中可以使用多种加密方式,包括对称加密、非对称加密和哈希加密等。
1. 对称加密
对称加密是指加密和解密使用同一个密钥的加密方式,常见的对称加密算法有DES、3DES、AES等。Spring Boot中可以使用Spring Security模块提供的对称加密功能,例如:
```java
String password = "123456";
String secretKey = "mySecretKey";
String encrypted = EncryptUtil.encrypt(password, secretKey);
String decrypted = EncryptUtil.decrypt(encrypted, secretKey);
System.out.println("加密后:" + encrypted);
System.out.println("解密后:" + decrypted);
```
其中EncryptUtil是一个自定义的工具类,实现了对称加密的加解密功能。
2. 非对称加密
非对称加密是指加密和解密使用不同的密钥的加密方式,常见的非对称加密算法有RSA、DSA等。Spring Boot中可以使用Java Cryptography Extension (JCE)提供的非对称加密功能,例如:
```java
String password = "123456";
KeyPair keyPair = RSAUtil.generateKeyPair();
String publicKey = RSAUtil.getPublicKey(keyPair);
String privateKey = RSAUtil.getPrivateKey(keyPair);
String encrypted = RSAUtil.encrypt(password, publicKey);
String decrypted = RSAUtil.decrypt(encrypted, privateKey);
System.out.println("公钥:" + publicKey);
System.out.println("私钥:" + privateKey);
System.out.println("加密后:" + encrypted);
System.out.println("解密后:" + decrypted);
```
其中RSAUtil是一个自定义的工具类,实现了非对称加密的生成密钥对、获取公钥和私钥,以及加解密功能。
3. 哈希加密
哈希加密是指将原始数据通过哈希算法转换成一段固定长度的无法还原的数据的加密方式,常见的哈希算法有MD5、SHA-1、SHA-256等。Spring Boot中可以使用Java提供的MessageDigest类实现哈希加密功能,例如:
```java
String password = "123456";
String salt = "mySalt";
String encrypted = HashUtil.hash(password, salt);
System.out.println("加密后:" + encrypted);
```
其中HashUtil是一个自定义的工具类,实现了哈希加密的功能,其中加入了盐值来增加加密的安全性。
需要注意的是,加密并不能完全保证数据的安全性,只能增加数据被破解的难度。对于敏感数据,建议使用HTTPS等更高级别的安全协议来保护数据的传输和存储。