直播系统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简单的密码加盐与密码验证,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2022-02-15 直播app源码,验证方式选择邮箱验证时,自动给输入好的邮箱发送验证码
2022-02-15 直播平台开发,伸缩式菜单,随意调整菜单栏横向的大小
2022-02-15 短视频带货源码,观看视频时双击放大
点击右上角即可分享
微信分享提示