直播系统app源码,shiro简单的密码加盐与密码验证
直播系统app源码,shiro简单的密码加盐与密码验证
1 | public class test {<br> public static void main(String[] args){<br> //假设向数据库存入加密的对象<br> UserDto user=new UserDto(); //创建一个对象<br> user.setPassword("123456"); //模拟密码123456<br> user.setSalt(ShiroKit.getRandomSalt(5)); //获取5位数的盐<br> user.setPassword(ShiroKit.md5(user.getPassword(), user.getSalt())); //把盐与密码传入方法中进行 md5加密方式 的1024次加密 最后得出加密密码<br> System.out.println("密码:"+user.getPassword()+" "+"Salt:"+ user.getSalt()); //打印 加密后的密码 与 盐的值<br>//最后把对象存入数据库中,小编看的guns项目以用户名不重复才可存入数据库<br>//模拟密码<br> String str=new String();<br> str="123456"; //模拟密码为123456<br> //封装请求账号密码为shiro可验证的token<br> UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("huasheng", str.toCharArray()); //"huasheng"为登录时输入的用户名,这里直接写了字符串<br> //获取数据库中的账号密码,准备比对 查找用户名所在的用户数据 这里直接用上面定义的user进行测试<br>// User user = userMapper.getByAccount(username);<br> String credentials = user.getPassword();//获取本账号加密过的密码<br> String salt = user.getSalt(); //获取本账号中对应盐值<br> ByteSource credentialsSalt = new Md5Hash(salt); //放入盐值<br> System.out.println("credentialsSaltgetBytes"+credentialsSalt.getBytes());<br> System.out.println("credentialsSaltgetClass"+credentialsSalt.getClass());<br> SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(<br> new ShiroUser(), credentials, credentialsSalt, "");//第一个参数是对象,密码,ByteSource对象,realmName<br> //校验用户账号密码<br> HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();<br> md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);//MD5<br> md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);//1024<br> boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( usernamePasswordToken, simpleAuthenticationInfo);//验证<br> if (passwordTrueFlag) {<br>// HashMap<String, Object> result = new HashMap<>();<br>// result.put("token", JwtTokenUtil.generateToken(String.valueOf(user.getId())));<br>// return result;<br> System.out.println("登陆成功");<br> } else {<br>// return new ErrorResponseData(500, "账号密码错误!");<br> System.out.println("账号密码错误!");<br> }<br> }<br>} |
以上就是 直播系统app源码,shiro简单的密码加盐与密码验证,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-02-15 直播app源码,验证方式选择邮箱验证时,自动给输入好的邮箱发送验证码
2022-02-15 直播平台开发,伸缩式菜单,随意调整菜单栏横向的大小
2022-02-15 短视频带货源码,观看视频时双击放大