返回顶部
首页 > 资讯 > 后端开发 > Python >一文掌握SpringSecurity BCrypt密码加密和解密
  • 125
分享到

一文掌握SpringSecurity BCrypt密码加密和解密

BCrypt密码加密和解密SpringSecurity密码加密 2023-05-16 11:05:33 125人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

BCrypt就是一款加密工具,可以比较方便地实现数据的加密工作。也可以简单理解为它内部自己实现了随机加盐处理。例如,使用MD5加密,每次加密后的密文其实都是一样的,这样就方便了MD5

BCrypt就是一款加密工具,可以比较方便地实现数据的加密工作。也可以简单理解为它内部自己实现了随机加盐处理。例如,使用MD5加密,每次加密后的密文其实都是一样的,这样就方便了MD5通过大数据的方式进行破解。
BCrypt生成的密文是60位的,而MD5的是32位的。

BCryptPassWordEncoder 是 spring Security 官方推荐的密码解析器。BCryptPasswordEncoder 类是PasswordEncoder接口的实现类。
BCryptPasswordEncoder 是对 BCrypt 强散列方法的具体实现。是基于 Hash 算法实现的单向加密。可以通过 strength 控制加密强度,默认 10.

使用BCrypt能实现每次加密的值都是不一样的。

在PasswordEncoder接口中有三个方法:

  • String encode(CharSequence rawPassword):加密原始密码。而BCrypt实现类会随机生成的salt来进行加密。
  • boolean matches(CharSequence rawPassword, String encodedPassword):对加密的密码和传入的原始密码进行验证。如果密码匹配则返回true,否则返回false。存储的密码本身永远不会被解码。
    • rawPassword:原始密码,比如加密前密码是“123”,这里就传入“123”
    • encodedPassword:加密后的密码
  • boolean upgradeEncoding(String encodedPassword):如果加密后的密码需要重新加密以提高安全性,则返回true,否则返回false。默认返回false。
    • encodedPassword:加密后的密码

需要的Maven依赖:

<!-- SpringBoot项目中的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- 非SpringBoot项目的依赖,SpringBoot项目也能用 -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-WEB</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
</dependency>

测试方法

public class BcryptTest {
    public static void main(String[] args) {
        // 用户密码
        String password = "123123";
        // 创建密码加密的对象
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        // 密码加密
        String newPassword = passwordEncoder.encode(password);
        System.out.println("加密后的密码为:" + newPassword);

        // 校验这两个密码是否是同一个密码
        // matches方法第一个参数是原密码,第二个参数是加密后的密码
        boolean matches = passwordEncoder.matches(password, newPassword);
        System.out.println("两个密码一致:" + matches);
    }
}

执行结果:

到此这篇关于【SpringSecurity】BCrypt密码加密和解密 一文学会使用BCryptPasswordEncoder的文章就介绍到这了,更多相关BCrypt密码加密和解密内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 一文掌握SpringSecurity BCrypt密码加密和解密

本文链接: https://lsjlt.com/news/209606.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 一文掌握SpringSecurity BCrypt密码加密和解密
    BCrypt就是一款加密工具,可以比较方便地实现数据的加密工作。也可以简单理解为它内部自己实现了随机加盐处理。例如,使用MD5加密,每次加密后的密文其实都是一样的,这样就方便了MD5...
    99+
    2023-05-16
    BCrypt密码加密和解密 SpringSecurity密码加密
  • SpringSecurity BCrypt密码加密和解密的方法是什么
    本篇内容主要讲解“SpringSecurity BCrypt密码加密和解密的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringSecurity BCrypt...
    99+
    2023-07-06
  • SpringBoot整合BCrypt实现密码加密
    本文实例为大家分享了SpringBoot整合BCrypt实现密码加密的具体代码,供大家参考,具体内容如下 一. 首先在pom依赖中加入依赖: <!-- security依赖...
    99+
    2024-04-02
  • Java使用bcrypt实现对密码加密效果详解
    目录简介bcrypt加密原理加密过程校验过程bcrypt与md5的区别示例1、引入依赖2、写测试类3、测试密文含义简介 本文用示例介绍使用对密码进行加密的算法:bcrypt。 bcr...
    99+
    2024-04-02
  • 使用mongoose和bcrypt怎么实现一个用户密码加密功能
    本篇文章给大家分享的是有关使用mongoose和bcrypt怎么实现一个用户密码加密功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用np...
    99+
    2024-04-02
  • SpringSecurity如何实现升级密码加密方式详解
    目录本章内容密码加密方式怎么升级升级方案源码实战第一种方式: Spring Bean他是怎么自动升级到BCrypt加密方式的第二种方式: 多继承接口方式第三种方式: HttpSecu...
    99+
    2023-01-04
    Spring Security升级密码加密 Spring Security密码加密
  • HTML框架解密:掌握文档结构的秘密
    HTML框架是网页设计中的基本概念,它定义了网页的内容和结构。理解和巧妙地使用框架对于创建高效且用户友好的网站至关重要。 HTML框架 HTML框架是使用 <frameset> 元素创建的,该元素将浏览器窗口分割为多个区域,称...
    99+
    2024-04-02
  • MySQL密码加密与解密
    MySQL加密和解密实例详解 有多种前端加密算法可用于数据加密、解密,这是一种简单的数据库级别的数据加密、解密解决方案。 以MySQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT() )和解密函数(AES_DECRY...
    99+
    2022-04-04
    MySQL密码加密与解密
  • 【RSA加密/解密】PKCS1_OAEP和PKCS1_v1_5两种填充方案【python RSA密钥对生成、密码加密、密文解密、pycharm安装Crypto】
    一、PKCS1_OAEP和PKCS1_v1_5是公钥加密标准中的两种填充方案。 PKCS1_OAEP(Optimal Asymmetric Encryption Padding)是一种更安全的填充方案...
    99+
    2023-10-26
    算法 开发语言 python pycharm
  • Python编程密码学文件加密与解密代码解析
    目录本章要点1 纯文本文件2 使用置换密码加密文件的源代码transpositionFileCipher.py3 运行置换密码加密文件程序的样例4 文件操作4.1 打开文件4.2 数...
    99+
    2024-04-02
  • c++文件怎么加密和解密
    加密和解密C++文件可以通过使用加密算法和解密算法来实现。以下是一个简单的示例代码,用于对文件进行加密和解密操作: #include...
    99+
    2024-04-08
    c++
  • SpringSecurity中密码加盐怎么实现
    这篇文章主要介绍“SpringSecurity中密码加盐怎么实现”,在日常操作中,相信很多人在SpringSecurity中密码加盐怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringSecur...
    99+
    2023-06-19
  • python 破解加密zip文件的密码
    目录今天的文章来自 盏茶作酒 同学。他在老电脑中发现了一个加密的 zip 文件,于是用 Python 破解了文件密码。在破解的过程中出现了内存爆炸的问题,通过阅读 Python 源代...
    99+
    2024-04-02
  • PHP sm4国密加密解密文件
    phpsm2sm3sm4: php 国密算法 支持 m2 sm3 sm4 SM3WithSM2签名 来源地址:https://blog.csdn.net/licanfeng1/article/details/132236052...
    99+
    2023-09-06
    android android studio ide php
  • android使用AES加密和解密文件实例代码
    前言最近公司需要对本公司的一些下载文件进行加密解密需求,也就尝试去实现下,其实需要借助第三方的jar包:bcprov-jdk15on-155.jar,下载这个可以到网上搜或者下载本人的demo即可,注意:需要加密和解密的key是一致的才可以...
    99+
    2023-05-31
    android aes 加密
  • Go实现凯撒密码加密解密
    目录1 凯撒密码加密设计思想2 Go实现2.1 导入包2.2 编写 caesar 方法3 凯撒密码解密4 其他实现5 测试总结1 凯撒密码加密 凯撒密码(英语:Caesar ciph...
    99+
    2024-04-02
  • python密码加密与解密的实现
    目录一、对称加密1.1 安装第三方库 - PyCrypto1.2 加密实现二、非对称加密三、摘要算法3.1 md5加密3.2 sha1加密3.3 sha256加密3.4 sha384...
    99+
    2023-02-07
    python 密码加密 python 密码解密
  • 怎么破解加密zip文件的密码
    本篇内容主要讲解“怎么破解加密zip文件的密码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么破解加密zip文件的密码”吧!之前在家里的老电脑中,发现一个加密zip压缩包,由于时隔太久忘记密码...
    99+
    2023-06-15
  • Java实现加密(一)AES加解密
    目录 1.背景知识2.AES简介3.AES的加密过程(AES处理单位:字节)4.Java实现4.1 生成密钥和偏移量4.2 AESUtil.java 源码4.3 执行结果4.4 线上验证 1.背景知识 在密码学中,加...
    99+
    2023-08-18
    java
  • Java 加密、解密PDF文档
    本篇文章将介绍通过Java编程来设置PDF文档保护的方法。我们可以设置仅用于查阅文档的密码,即该通过该密码打开文档仅用于文档阅读,无法编辑;也可以设置文档编辑权限的密码,即通过该密码打开文档时,文档为可编辑状态。使用工具:Free Spir...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作