这里设计到一个新的知识点,下来准备找找资料学习一下:Spring Security
我们都知道,密码这种东西存到数据库是不能以明文直接存入的,而是要经过加密,而且加密还颇多讲究

比如以前的 MD5加密,现在很容易就破解了,需要配合一下其他的手段完成密码的不见光性

Spring Security 提供了BCryptPasswordEncoder类,使用BCrypt强哈希方法来加密密码

依赖: 

        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

我们只是使用该框架的加密功能,添加配置类,配置其他地址都可以访问(安全配置类)

解析:(请把注释删掉,否则无法解析)

    @Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests() //所有sucurity全注解配置实现的开端,表示需要的权限 权限分为:拦截的路径和访问该路径需要的权限
.antMatchers("/**").permitAll()  //第一个表示拦截的路径,第二个表示放行所有路径,任何权限随意访问
.anyRequest().authenticated()  //第一个表示任何的请求,第二个表示认证后才能访问
.and().csrf().disable();  //第一个为固定写法,第二个表示csrf拦截失效
}

 然后我们就可以在Spring容器启动的时候注入  BCryptPasswordEncoder,然后就可以开始使用了

然后我们将  BCryptPasswordEncoder 注入到我们要使用 加密服务的类中,

主要使用的方法有两个:encode ( 加密 )  matches ( 判断明文和加密后的密文是否相同 ,返回布尔值)

看看列子:

   Controller:

    

   Service:

    

使用的是Spring全家桶,下面我们开始测试:

    

查看数据库录入的数据:这就是 “2222” 加密后形成的密文

    

查看控制台打印的数据:

    

密码就以密文的方式存入到了数据库,Spring Security不了解,下来了解了解。

BCrypt实现密码的加密的更多相关文章

  1. [PHP] Laravel 5.5 的 BCrypt对密码进行加密及密码验证

    Laravel 5.5 的 BCrypt对密码进行加密及密码验证 一.加密 方法1) $password= Hash::make('密码'); 方法2) /也可直接使用 bcrypt 的 functi ...

  2. 前端使用bcrypt对密码加密,服务器对密码进行校验

    以前为了防止前端密码安全问题,都是对密码进行md5(password + salt). 有些也会用别的加密方式,但还是会存在撞库,彩虹表等破解常规密码. 因此使用bcrypt加密是一个不错的选择,因为 ...

  3. Liferay 6.2 改造系列之二十四:修改liferay密码的加密方式

    为了便于后期与Cas集成过程中使用数据库用户的方便,将liferay密码的加密方式改为SHA. 在/portal-master/portal-impl/src/portal.properties配置文 ...

  4. 如何正确对用户密码进行加密?转自https://blog.csdn.net/zhouyan8603/article/details/80473083

    本文介绍了对密码哈希加密的基础知识,以及什么是正确的加密方式.还介绍了常见的密码破解方法,给出了如何避免密码被破解的思路.相信读者阅读本文后,就会对密码的加密有一个正确的认识,并对密码正确进行加密措施 ...

  5. kylin的配置账号密码的加密方法

    kylin的配置账号密码的加密方法 kylin安装过程中,配置账户,其中密码是加密的.生成密码对应密文的 方法如下: import java.io.PrintStream; import org.sp ...

  6. c#程序中对密码进行加密的方法

    在ADO.NET中,向数据库添加数据时,怎样对数据中的密码进行加密?(也就是说在数据表中也看不到用户的密 码,只是一些经过编译后的字符串,以防止数据库管理员利用用户的密码进行非法操作.)    首先, ...

  7. 使用kettle转换中的JavaScript对密码进行加密和解密

    日常开发中,为了确保账号和密码的安全,时常要对密码进行加密和解密.然而kettle是怎么对密码进行加密和解密的呢? 下面的代码需要再转换中的JavaScript中运行. var encrypted_p ...

  8. 用户登录密码RSA加密后传输的实现,非明文密码传输

    在用户登录页面,用户输入密码后,在传送到服务器端时,为防止在密码传送过程中,被如360这种东东给拦截到, 需要在传送前对密码进行加密,然后再传送! 利用RSA加密,在客户端使用公钥对密码进行加密,在服 ...

  9. 修改servu数据库密码 servu加密方式

    项目要求可以有用户自行修改servu密码.servu可以通过odbc访问access\mysql\sqlserver数据库.我们直接通过创建web来修改就可以了. 不过问题来了,密码是加密的...通过 ...

随机推荐

  1. xmal中的渐变

    <LinearGradientBrush> <LinearGradientBrush.GradientStops> <GradientStop Offset=" ...

  2. 48-设置tomcat虚拟路径的两种方法(Eclipse、tomcat、IDEA)

    设置tomcat虚拟路径的两种方法(Eclipse.tomcat.IDEA) 三种方式设置虚拟服务器路径如果我们要实现一个上传文件的功能,但是又想要上传的文件不会随着自己web服务器的重启而不能访问了 ...

  3. 20164319 刘蕴哲 Exp5 MSF基础应用

    [实践内容] 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践(这里我做了两个:ms08_067[成功]和ms17_010[成功 ...

  4. 转:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-j8m0mf5q/mysqlclient

    错误场景 第一次部署服务器时mysqlclient安装失败 思考 初步考虑是pip没有升级,最后发现不是这个原因. 解决办法 来源:https://blog.csdn.net/mr_tia/artic ...

  5. linux awk使用详解

    转载:https://www.cnblogs.com/xudong-bupt/p/3721210.html   awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的 ...

  6. github node.js

    #安装githubyum install git -y #下载nvmgit clone git://github.com/creationix/nvm.git ~/nvm #设置nvm 自动运行;ec ...

  7. BUAA_OO第一单元总结

    OO第一单元总结 目录 作业总体分析 代码结构分析 遇到的bug问题    找到bug的方法 结语 一.作业总体分析 尽管这个单元三次作业都是表达式求导,但我认为每次作业的侧重点是不同的. 对于第一次 ...

  8. 实现一个简易版RPC

    上篇博客主要介绍了dubbo的使用,这篇文章主要深入rpc的核心原理 准备知识: 1 java 网络编程(这里使用的bio) 2 java动态代理 3 反射 ===================== ...

  9. ssh多台主机之间不用密码远程

    二.多台服务器相互无密码访问 多台服务器相互无密码访问,与两台服务器单向无密码访问的原理是一样的,只不过由于是多台服务器之间相互无密码访问,不能象两台服务器无密码登录那样直接上传,步骤如下: 1.在需 ...

  10. 【机器学习】K均值算法(II)

    k聚类算法中如何选择初始化聚类中心所在的位置. 在选择聚类中心时候,如果选择初始化位置不合适,可能不能得出我们想要的局部最优解. 而是会出现一下情况: 为了解决这个问题,我们通常的做法是: 我们选取K ...