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