【已解决】SpringBoot整合security账号密码正确却提示错误 | 您所在的位置:网站首页 › emby用户名或密码错误 › 【已解决】SpringBoot整合security账号密码正确却提示错误 |
【已解决】SpringBoot整合security账号密码正确却提示错误
一:引言
SpringSecurity的密码校验并不是直接使用原文进行比较,而是使用加密算法将密码进行加密(更准确地说应该进行Hash处理,此过程是不可逆的,无法解密),最后将用户提供的密码以同样的方式加密后与密文进行比较。对于我们来说,用户提供的密码属于隐私信息,直接明文存储并不好,而且如果数据库内容被窃取,那么所有用户的密码将全部泄露,这是我们不希望看到的结果,我们需要一种既能隐藏用户密码也能完成认证的机制,而Hash处理就是一种很好的解决方案,通过将用户的密码进行Hash值计算,计算出来的结果无法还原为原文,如果需要验证是否与此密码一致,那么需要以同样的方式加密再比较两个Hash值是否一致,这样就很好的保证了用户密码的安全性。 现在,我们可以尝试使用此账号登录,在登录后,就可以随意访问我们的网站内容了。 二:使用数据库认证前面我们已经实现了直接认证的方式,那么如何将其连接到数据库,通过查询数据库中的内容来进行用户登录呢? 首先我们需要将加密后的密码添加到数据库中作为用户密码: public class MainTest { @Test public void test(){ BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); System.out.println(encoder.encode("123456")); } } 三:错误原因:我们的SpringSecurity的密码校验并不是直接使用原文进行比较,而是使用加密算法将密码进行加密(更准确地说应该进行Hash处理,此过程是不可逆的,无法解密),最后将用户提供的密码以同样的方式加密后与密文进行比较。 简而言之:我们验证的密码是比较该密码加密后和数据库存储密文是否一样。 解决方法将密码进行加密后,存储到数据库,比如123456,加密后成字符串,存入数据库,之后再进行身份验证的时候,直接密码直接输入123456即可 MD5解密网址:点我跳转 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |