首页 > 技术文章 > SpringSecurity 加解密安全

ruhuanxingyun 2020-12-31 09:33 原文

1. Maven依赖

<!-- Crypto 密码加密 -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-crypto</artifactId>
    <version>5.4.2</version>
</dependency>

2. 密码工具类

package com.ruhuanxingyun.util;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * @description: 密码加密比对 工具类
 * @author: ruphie
 * @date: Create in 2020/12/30 15:29
 * @company: ruhuanxingyun
 */
public class PasswordUtils {

    private static final BCryptPasswordEncoder ENCODER = new BCryptPasswordEncoder();

    /**
     * 密码加密
     *
     * @param rawPassword 原始密码
     * @return 加密后密码
     */
    public static String encode(String rawPassword) {
        return ENCODER.encode(rawPassword);
    }

    /**
     * 密码校验
     *
     * @param rawPassword     原始密码
     * @param encodedPassword 加密后密码
     * @return 是否匹配
     */
    public static boolean matches(String rawPassword, String encodedPassword) {
        return ENCODER.matches(rawPassword, encodedPassword);
    }

}

3. 其他

  A. 密码长度为8-20位,大小写,数字,特殊字符,至少2种组合:(?!^(\\d+|[a-zA-Z]+|[~!@#$%^&*()_\\-\\+=?]+)$)(^[\\w~!@#$%^&*()\\-\\+=?]{8,20}$)

 

 

可参考:https://blog.51cto.com/15015181/2556213

推荐阅读