密码修改强度校验功能

16 篇文章 0 订阅

需求:

当用户登录系统后,个人中心增加修改密码按钮 

密码强度校对要求:

1、修改密码提交用Base64加密,Java解密

2、设计密码复杂度:最少8位,数字+大写字母+小写字母+特殊字符 最少3种

3、登录时用户名密码加密传输

4、修改密码时用户密码加密传输

参考正则表达式: ^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[._~!@#$^&*])[A-Za-z0-9._~!@#$^&*]{8,20}$

首先,前端增加修改密码框 代码如下:

<!--修改密码框-->

<div id="passwordLayer" style="display: none;">

<form class="layui-form" >



<div class="layui-form">

<div class="layui-form-item" style="margin-top: 10px">

<label class="layui-form-label" style="font-weight: bold">账号</label>

<span class="layui-form-label" style="width:100px;">

<span class="userName" style="vertical-align: text-top;" ></span>

</span>



</div>

<div class="layui-form-item">

<label class="layui-form-label" style="font-weight: bold">原密码</label>

<div class="layui-input-block">

<input type="password" class="layui-input" id="password" placeholder="请输入原密码" style="width: 380px;"/>

</div>

</div>

<div class="layui-form-item">

<div class="layui-form-label" style="font-weight: bold">新密码</div>

<div class="layui-input-block">

<input type="password" class="layui-input" id="newPassword" placeholder="请输入新密码" style="width: 380px;"/>

</div>

</div>

</div>

</form>

</div>

其中绑定id 增加点击按钮事件

 


js 代码:

 


Base64加密 源代码

 


后端接口调用:

/**

* 修改登录用户密码

*/

@ResponseBody

@SysLog("修改密码")

@RequestMapping("/password")

public R password(String password, String newPassword) throws UnsupportedEncodingException {



//判断是否为管理员

if (getUserId().equals("1")) {

throw new RRException("系统管理员不可修改密码");

}

//数据校验是否为空

Assert.isBlank(newPassword, "新密码不为能空");



//由于前端base64加密传输 这里进行base64解密

password = new String(Base64.decode(password), "utf-8");

newPassword = new String(Base64.decode(newPassword), "utf-8");



//解密后的密码进行sha256加密

password = new Sha256Hash(password).toHex();

//解密后的密码sha256加密

newPassword = new Sha256Hash(newPassword).toHex();

System.out.println(password);

System.out.println(newPassword);



//更新密码

int count = sysUserService.updatePassword(getUserId(), password, newPassword);

if (count == 0) {

return R.error("原密码不正确");

}

//退出

ShiroUtils.logout();

return R.ok();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值