欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Bcrypt简介

程序员文章站 2022-03-24 18:59:28
...
Bcrypt简介: bcrypt是一种跨平台的文件加密工具。

bcrypt 使用的是布鲁斯·施内尔在1993年发布的 Blowfish 加密算法。

由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,并将在内部
被转化为448位的密钥。

Bcrypt就是一款加密工具,可以比较方便地实现数据的加密工作。你也可以简单理解为它内部自己实现了
随机加盐处理

例如,我们使用MD5加密,每次加密后的密文其实都是一样的,这样就方便了MD5通过大数据de的方式
进行破解。

Bcrypt生成的密文是60位的。而MD5的是32位的。

jBCrypt is a Java™ implementation of OpenBSD's Blowfish password hashing code,
 as described in "A Future-Adaptable Password Scheme" by Niels Provos and David Mazières.
This system hashes passwords using a version of Bruce Schneier's Blowfish
 block cipher with modifications designed to raise the cost of off-line 
password cracking and frustrate fast hardware implementation. The computation
 cost of the algorithm is parametised, so it can be increased as computers 
get faster. The intent is to make a compromise of a password database less likely 
to result in an attacker gaining knowledge of the plaintext passwords (e.g. using John the Ripper).
There seems to be a lack of good password hashes for Java - the top two hits 
in Google (as of 2006/05/24) for "Java password hash" and "Java password encryption" both offer terrible advice: one uses an unsalted hash which allows reverse dictionary lookup of passwords and the other recommends reversible encryption, which is rarely needed and should only be used as a last resort.
jBCrypt is licensed under a ISC/BSD licence (see the LICENSE file for details) and ships with a set of JUnit unit tests to verify correct operation of the library and compatibility with the canonical C implementation of the bcrypt algorithm.


BCrypt加密:是一种加盐的加密方法,MD5加密时候,同一个密码经过hash的时候生成的是
同一个hash值,在大数据的情况下,有些经过md5加密的方法将会被破解.使用BCrypt进行加密,
同一个密码每次生成的hash值都是不相同的。每次加密的时候首先会生成一个随机数就是盐,
之后将这个随机数与密码进行hash,得到 一个hash值存到数据库中使用的函数是
BCrypt.hashpw(password, BCrypt.gensalt())。当用户在登陆的时候,输入的是明文的密码,
这个时候,在springSecurity.xml文件中的认证管理器中配置BCrypt加密方式,将会将会从
数据库中取出这个hash值进行分离,前面的22位就是加的盐,之后将随机数与前端输入的密码
进行组合求hash值判断是否相同,使用的函数是: match