简述BCrypt加密算法

Blowfish加密算法是一种对称分组密码算法,其拥有加密速度快、紧凑、密钥长度可变等特点。而今天我们文章的主角则是基于Blowfish算法而来的BCrypt加密算法。

BCrypt算法简介

BCrypt算法是专门为密码存储而设计的算法,基于Blowfish加密算法变形而来,由Niels Provos和David Mazières发表于1999年的USENIX。

BCrypt算法一个非常重要的特征就是自适应性,可以保证加密的速度在一个特定的范围内,即使计算机的运算能力非常高,可以通过增加迭代次数的方式,使得加密速度变慢,从而可以抵御暴力搜索攻击,而且不会影响已有用户的登录。

BCrypt加密算法

BCrypt算法的加密原理

BCrypt算法可以看作是hash算法的变种,它使用“盐”来加密密码。盐是一个随机生成的字符串,可以在密码加密过程中使用,以确保每次加密结果都不同。BCrypt算法可以使用不同的“折叠”级别,即将多次hash迭代运算来增加安全性,从而创建一个更安全的加密字符串。

简单来理解就是BCrypt算法内部自己实现了随机加盐处理。使用Bcrypt,每次加密后的密文是不一样的。

虽然对同一个密码,每次生成的hash不一样,但是hash中包含了“盐”,在下次校验时,从hash中取出“盐”,“盐”跟password进行hash,得到的结果跟保存在DB中的hash进行比对。

BCrypt加密算法

BCrypt算法的优缺点

BCrypt算法在加密过程中可以实现不同的折叠级别,这让攻击者需要花费更长的时间来破解密码,因此可以有效保护用户的安全性。

此外,BCrypt还可以让用户在加密时输入自定义的“盐”,这可以进一步增加加密的安全性。

另外,BCrypt还可以使用不同的“折叠”级别,这让攻击者需要花费更多的时间来破解密码.

但是,高度的安全带来的问题就是性能的损失,因为它的复杂性,导致了每次计算的耗时远远大于普通的加盐hash算法。

BCrypt加密算法


BCrypt算法的安全性非常高,但其速度却比其他同类型算法慢上很多,所以在实际应用中并没有其他hash算法广泛,一般常用于保护安全要求极高的数据。

免责声明:素材源于网络,如有侵权,请联系删稿。

相关推荐

简述曲路密码

在古典密码中大致可以分为移位和替换两种,在移位密码中字母不变,位置改变;替换密码中则是字母改变,位置不变。今天我们就来了解一种比较简单的移位密码——曲路密码。 曲路密码的简介 曲路密码发明者和发明时间 ...

简述ADFGVX密码

在之前的文章中,我们了解了波利比乌斯密码,它是一种棋盘方阵密码,而我们今天要了解的密码是由它改良而来,在第一次世界大战中被德军广泛使用的ADFGVX密码。 ADFGVX密码简介 ADFGVX密码被认为是“人力加密时代 ...

简述培根密码

大家应该都吃过培根这种食物,但你可知道在古典密码中有一种以“培根”为命名的密码算法。今天我们就来通过本文了解一下这个“培根密码”。 培根密码简介 培根密码有名“倍康尼密码”,英文明文Bacon's cipher,它并不 ...

简述KeeLoq加密算法

随着物联网的发展,越来越多的设备开始智能化,这其中就少不了加密算法的保驾护航。今天我们要了解的就是广泛应用于无线认证领域的加密算法——KeeLoq加密算法。 KeeLoq算法简介 KeeLoq算法最初是由南非Willem Smi ...