@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;