SpringSecurit盐值加密的密码验证以及强密码验证过程

 更新时间:2024年10月10日 10:37:58   作者:思祺班  
在密码加密过程中,盐值的使用可以增强密码的安全性,如果忘记存储盐值,将无法验证密码,强密码应包含数字、字母和特殊字符,长度应在8到30位之间,以提高账户安全

SpringSecurit盐值加密的密码验证及强密码验证

1、有的时候我们盐值加密的时候没有存入盐值

值存入了密码,然后怎么样验证这个密码呢

以下代码展示:

   PasswordEncoder pe = new BCryptPasswordEncoder();
        //比较密码
        //pe.matches (“前端存过来的密码记得是没有加密的”,“在数据中存储的加密的密码”) ;
        boolean matches = pe.matches (changePwdDTO.getOldPassword(),iamAccount.getAuthSecret()) ;
        if (!matches){
            throw new BusinessException(Status.FAIL_OPERATION, "旧密码错误,请重新输入");
        }
        //判断密码是否包含相关的字符,数字,字母
         if(!check(changePwdDTO.getConfirmPassword())){
            throw new BusinessException(Status.FAIL_OPERATION, "密码必须至少为8位字符,其中包含数字、字母及特殊字符");
        }
   

2、强密码验证

包含数字、字母和特殊字符,长度要求8到30位

     
package security;
 
/**
 * 密码校验:包含数字、字母和特殊字符,长度要求8到30位。
 * @author lxzqz
 *
 */
public class CheckPassword {
	public static final String REGEX_PASSWORD_STRONG = "^(?![0-9]+$)(?![^0-9]+$)(?![a-zA-Z]+$)(?![^a-zA-Z]+$)(?![a-zA-Z0-9]+$)[a-zA-Z0-9\\S]{8,30}$";
 
	/**
	 * 密码校验,符合强密码规则返回true,否则返回false
	 * @param password
	 * @return
	 */
	public static boolean check(String password) {
		boolean flag = password.matches(REGEX_PASSWORD_STRONG);
		return flag;
	}
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java 数据库连接池 Tomcat介绍

    Java 数据库连接池 Tomcat介绍

    这篇文章主要给大家分享了 Java 数据库连接池 Tomcat介绍,omcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。下面来看看文章内容的详细介绍吧
    2021-11-11
  • 简单谈谈Java 中的线程的几种状态

    简单谈谈Java 中的线程的几种状态

    这篇文章主要介绍了简单谈谈Java 中的线程的几种状态的相关资料,需要的朋友可以参考下
    2020-02-02
  • SpringBoot+MyBatis+Redis实现分布式缓存

    SpringBoot+MyBatis+Redis实现分布式缓存

    本文主要介绍了SpringBoot+MyBatis+Redis实现分布式缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • .NET Core使用SignalR实现实时通讯的示例代码

    .NET Core使用SignalR实现实时通讯的示例代码

    SignalR是一个ASP.NETCore库,用于在客户端和服务器之间实现实时通讯,本文主要介绍了.NETCore中使用SignalR实现实时通讯,感兴趣的可以了解一下
    2024-11-11
  • 解决Java Calendar类set()方法的陷阱

    解决Java Calendar类set()方法的陷阱

    这篇文章主要介绍了解决Java Calendar类set()方法的陷阱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 利用Mybatis向PostgreSQL中插入并查询JSON字段

    利用Mybatis向PostgreSQL中插入并查询JSON字段

    这篇文章主要介绍了利用Mybatis向PostgreSQL中插入并查询JSON字段,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Java使用Ajax异步上传文件

    Java使用Ajax异步上传文件

    使用Ajax上传文件的应用场景颇多,比如上传用户头像、博客文章中插入图片、对认证用户相关身份进行校验等等很多很多。本文提供一个简单的示例供大家参考
    2021-05-05
  • 使用Pinyin4j进行拼音分词的方法

    使用Pinyin4j进行拼音分词的方法

    下面小编就为大家分享一篇使用Pinyin4j进行拼音分词的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • redis分布式锁的实现原理详解

    redis分布式锁的实现原理详解

    这篇文章主要为大家详细介绍了redis分布式锁,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 详解java接口基础知识附思维导图

    详解java接口基础知识附思维导图

    这篇文章主要介绍了java接口基础知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论