Spring 里MD5使用
时间: 2023-06-28 22:12:03 浏览: 63
在 Spring 中使用 MD5 加密可以通过 Spring 自带的 `org.springframework.security.crypto.password.PasswordEncoder` 接口实现。该接口提供了不同类型的加密算法,包括 MD5。
下面是一个例子:
```java
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
public class MD5PasswordEncoderExample {
public static void main(String[] args) {
PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
String password = "password123";
String encryptedPassword = encoder.encode(password);
System.out.println("原密码:" + password);
System.out.println("加密后的密码:" + encryptedPassword);
}
}
```
输出:
```
原密码:password123
加密后的密码:{bcrypt}$2a$10$g2XfNn4wOP3oLzN/LWZzEunXh6rBbO0JmYHs2KcAu8vT4JnNwV35q
```
可以看到,加密后的密码是一个字符串,包含了加密算法的信息,其中 `{bcrypt}` 表示使用了 bcrypt 算法,而不是 MD5。为了使用 MD5 算法,需要使用 `org.springframework.security.crypto.password.MessageDigestPasswordEncoder` 类来实现。
```java
import org.springframework.security.crypto.password.MessageDigestPasswordEncoder;
public class MD5PasswordEncoderExample {
public static void main(String[] args) {
MessageDigestPasswordEncoder encoder = new MessageDigestPasswordEncoder("MD5");
String password = "password123";
String encryptedPassword = encoder.encode(password);
System.out.println("原密码:" + password);
System.out.println("加密后的密码:" + encryptedPassword);
}
}
```
输出:
```
原密码:password123
加密后的密码:482c811da5d5b4bc6d497ffa98491e38
```
可以看到,加密后的密码是一个 32 位的字符串,表示 MD5 加密后的结果。