当前位置: 首页 > news >正文

25.4.17学习总结

关于bcrypt算法

BCrypt 的主要特点和优点:

  • 加盐 (Salting): BCrypt 会自动为每个密码生成一个随机的盐值 (salt) 并将其与密码组合在一起,然后再进行哈希。 盐值是随机数据,用于防止彩虹表攻击。 这意味着即使两个用户使用相同的密码,他们的哈希值也会不同。

  • 慢哈希 (Slow Hashing): BCrypt 被设计成一个运算量大的哈希函数,需要更多的计算时间。 这种设计使得暴力破解(尝试所有可能的密码)变得非常耗时,从而提高了安全性。 这个 "慢" 是指相对于其他哈希算法,它是故意变慢的。

  • 自适应 (Adaptive): BCrypt 允许调整“成本因子”(也称为“轮数”)。 成本因子决定了哈希计算的复杂程度。 随着计算机硬件的改进,你可以增加成本因子以保持密码哈希的安全性。 成本因子越高,哈希计算所需的时间就越长,破解密码就越困难。

  • 单向性 (One-Way): BCrypt 是一种单向散列函数。这意味着从密码的哈希值反向推导出原始密码在计算上是不可行的。

工作原理:

  1. 生成盐值 (Salt): 当用户注册时,BCrypt 首先生成一个随机的盐值。

  2. 组合密码和盐值: BCrypt 将用户的密码与生成的盐值组合在一起。

  3. 哈希计算: BCrypt 对组合后的密码和盐值进行多次迭代的哈希运算,这个迭代次数由成本因子控制。

  4. 存储哈希值: 生成的哈希值(包含盐值信息)被存储在数据库中。

import org.mindrot.jbcrypt.BCrypt;public class EncryptSensitiveData {//bcrypt算法private static final int BCRYPT_ROUNDS = 12;public static String hashData(String Data) {return BCrypt.hashpw(Data, BCrypt.gensalt(BCRYPT_ROUNDS));}public static boolean checkData(String Data, String hashedData) {return BCrypt.checkpw(Data, hashedData);}
}
http://www.dtcms.com/a/139150.html

相关文章:

  • 多线程进阶知识篇(二)
  • CSDN创作四载记:我的创作纪念日随笔与感悟
  • SpringBoot整合Thymeleaf模板:构建现代化Web视图层的完整指南
  • 5G中LDPC编码之码块分段
  • C++入门小馆: C/C++内存管理
  • DAY 47 leetcode 232--栈与队列.用栈实现队列
  • 视频剪辑入门
  • iptables防火墙
  • 【C++初阶】第14课—缝合怪deque和优先队列、仿函数
  • AI在能源消耗管理及能源效率提升中的核心应用场景及技术实现
  • vllm 本地部署qwen2.5/Qwen2.5-32B-Instruct-AWQ模型
  • Crawl4AI:为大语言模型打造的开源网页数据采集工具
  • AI Agent系列(九) -Data Agent(数据分析智能体)
  • 【无人机】PX4飞控怎么烧写加载固件,更新固件方法,详细流程
  • seaborn库详解
  • pandas库详解
  • 【web服务_负载均衡Nginx】一、Nginx 基础与核心概念解析
  • 使用 reverse-sourcemap 工具反编译 Vue 项目
  • 如何通俗理解transformer架构
  • Vue中v-if和v-show区别
  • 探索Web3平台的数据安全和保护机制
  • 蓝光三维扫描技术:高效精密测量相机镜头底座注塑件
  • 在 Power BI Desktop 中设置视觉对象查询限制
  • 基于labview的钢琴程序设计
  • 算法之贪心算法
  • Python + 链上数据可视化:让区块链数据“看得懂、用得上”
  • ESP32- 开发笔记- 硬件设计-ESP32-C3基本电路
  • Windows平台使用Docker部署Neo4j
  • 《MySQL:MySQL数据库的基本操作》
  • 利用互斥锁或者利用逻辑过期解决缓存击穿问题