重置密码

@Transactional(rollbackFor = Exception.class)
    public boolean repwd(String rowId,String did, String oldPwd, String pwd) throws NoSuchAlgorithmException {
        //获取老密码
        SysUserExample sysUserExample1 = new SysUserExample();
        SysUserExample.Criteria criteria = sysUserExample1.createCriteria();
        criteria.andAliasDidEqualTo(did);
        criteria.andAliasRowIdEqualTo(rowId);
        SysUserDto user = sysUserMapper.selectByExample(sysUserExample1).get(0);
        //老密码
        String mdPwd = user.getPassWord();
        //老密码盐值
        String oldSalt = user.getSaltkey();
        String oldSaltPwd = oldPwd + oldSalt;
        String oldMdPwd = Md5Utils.calc(oldSaltPwd);
        if (!mdPwd.equals(oldMdPwd)) {
            throw new NoSuchAlgorithmException("旧密码不正确");
        }
        /*获取随机盐*/
        String saltkey = Base64.encodeBase64String(RandomStringUtils.random(5).getBytes());
        /*对密码加盐*/
        String salpwd = pwd + saltkey;
        /*再对加盐的密码进行md5加密*/
        String mpwd = Md5Utils.calc(salpwd);
        logger.info("mpwd参数:{}", mpwd);
        SysUser sysUser = new SysUser();
        sysUser.setPassword(mpwd);
        SysUserExample sysUserExample = new SysUserExample();
        SysUserExample.Criteria sUser = sysUserExample.createCriteria();
        sUser.andDidEqualTo(did);
        sUser.andRowIdEqualTo(rowId);
        sysUser.setUpdatedt(new Date());
        sysUserMapper.updateByExampleSelective(sysUser, sysUserExample);
        sysUserMapper.insertSaltkey(saltkey, did, rowId);
        return true;

 

posted @ 2019-10-24 10:20  p_小白  阅读(204)  评论(0编辑  收藏  举报

你再瞅我 还瞅!关注啊