为什么密码绝不能明文保存?
在你动手写入数据库之前,请牢记以下三点理由:
- 防止泄露后“裸奔”数据库一旦被攻破,用户密码一览无余。
- 用户账号联动风险很多人不同平台用的是同一个密码,一旦一个泄露,其它平台也岌岌可危。
- 法律合规要求像 OWASP、GDPR 等都明确要求不能以明文存储密码。
密码如何安全保存?五种方式送上
1、使用 BCrypt 进行密码加密
核心特性:
- 内建加盐机制,有效防止彩虹表攻击;
- 可以设置加密强度;
- 哈希结果长度固定(60 字符),便于存储。
依赖配置(如未引入 Spring Security):
<!-- /src/main/resources/pom.xml -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId>
</dependency>
加密与验证实现:
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class PasswordUtils {