zoukankan      html  css  js  c++  java
  • BCrypt实现密码的加密

    这里设计到一个新的知识点,下来准备找找资料学习一下: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不了解,下来了解了解。

  • 相关阅读:
    HTML&CSS 学习网站收藏【转】
    HTML5安全:CORS(跨域资源共享)简介【转】
    SPDY以及示例
    前端开发中,对图片的优化技巧有哪些?(比如淘宝首页的图片)
    【javascript基础】之【__lookupSetter__ 跟 __lookupSetter__】
    毫秒必争,前端网页性能最佳实践【转】
    最近遇到的兼容性问题和适配问题
    备份的一些小tip
    Http2改造实践:statusText丢失问题
    vue-cli脚手架npm相关文件解读(9)config/index.js
  • 原文地址:https://www.cnblogs.com/msi-chen/p/10621961.html
Copyright © 2011-2022 走看看