BCrypt 加密实现
来源:互联网 发布:网络平台app代理 编辑:程序博客网 时间:2024/05/29 06:43
Bcrypt百度百科: bcrypt,是一个跨平台的文件加密工具。由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。
除了对您的数据进行加密,默认情况下,bcrypt 在删除数据之前将使用随机数据三次覆盖原始输入文件,以阻挠可能会获得您的计算机数据的人恢复数据的尝试。如果您不想使用此功能,可设定禁用此功能。
bcrypt 使用的是布鲁斯·施内尔在1993年发布的 Blowfish 加密算法。具体来说,bcrypt 使用保罗·柯切尔的算法实现。随 bcrypt 一起发布的源代码对原始版本作了略微改动。
除了对您的数据进行加密,默认情况下,bcrypt 在删除数据之前将使用随机数据三次覆盖原始输入文件,以阻挠可能会获得您的计算机数据的人恢复数据的尝试。如果您不想使用此功能,可设定禁用此功能。
bcrypt 使用的是布鲁斯·施内尔在1993年发布的 Blowfish 加密算法。具体来说,bcrypt 使用保罗·柯切尔的算法实现。随 bcrypt 一起发布的源代码对原始版本作了略微改动。
简单的说,Bcrypt就是一款加密工具,可以比较方便地实现数据的加密工作。下面是使用Bcrypt对数据加密的一个简单的栗子:
1: 可以官网下载源码,网址:http://www.mindrot.org/projects/jBCrypt/
2: 使用列子
import java.util.HashMap;import java.util.Map;import org.apache.commons.lang3.StringUtils;/** * Bcrypt encryption algorithm * @author yue.li3 * */public class BcryptCipher {// generate salt seedprivate static final int SALT_SEED = 12;// the head fo saltprivate static final String SALT_STARTSWITH = "$2a$12";public static final String SALT_KEY = "salt";public static final String CIPHER_KEY = "cipher";/** * Bcrypt encryption algorithm method * @param encryptSource * need to encrypt the string * @return Map , two values in Map , salt and cipher */public static Map<String, String> Bcrypt(final String encryptSource) {String salt = BCrypt.gensalt(SALT_SEED);Map<String, String> bcryptResult = Bcrypt(salt, encryptSource);return bcryptResult;}/** * * @param salt encrypt salt, Must conform to the rules * @param encryptSource * @return */public static Map<String, String> Bcrypt(final String salt, final String encryptSource) {if (StringUtils.isBlank(encryptSource)) {throw new RuntimeException("Bcrypt encrypt input params can not be empty");}if (StringUtils.isBlank(salt) || salt.length() != 29) {throw new RuntimeException("Salt can't be empty and length must be to 29");}if (!salt.startsWith(SALT_STARTSWITH)) {throw new RuntimeException("Invalid salt version, salt version is $2a$12");}String cipher = BCrypt.hashpw(encryptSource, salt);Map<String, String> bcryptResult = new HashMap<String, String>();bcryptResult.put(SALT_KEY, salt);bcryptResult.put(CIPHER_KEY, cipher);return bcryptResult;}}3:BCrypt 可以官网下载, 下面是我下载好的可以直接用
0 0
- BCrypt 加密实现
- Java通过BCrypt加密
- BCrypt随机盐值加密
- BCrypt 密码加密和解密
- nodejs中使用bcrypt加密
- Spring Security 4.x 启用BCrypt加密
- spring security3.x学习(18)_salt以及Bcrypt加密
- spring security3.x学习(18)_salt以及Bcrypt加密
- 在rails中使用bcrypt进行密码的加密
- 使用BCrypt算法加密存储登录密码用法及好处
- spring security 3中推荐使用BCrypt算法加密密码
- 对用用户密码的保存方式之BCrypt加密方式
- Spring Security 4 整合Hibernate Bcrypt密码加密(带源码)
- bcrypt加密算法
- bcrypt使用
- nodejs 中的 bcrypt (2) : bcrypt 浅析
- linux 安装bcrypt
- Password bcrypt scrypt
- 括号匹配
- 大型网站架构的演化
- SpringBoot你需要知道的简单基本配置
- 【Java学习笔记】14.集合框架和泛型
- 使用预编译(PreparedStatement)—— Login 源代码示例
- BCrypt 加密实现
- iOS之CAKeyframeAnimation关键帧动画详解
- Windows上搭建Kafka运行环境
- Servlet中的中文乱码问题
- Python:函数4——匿名函数和bif:map、filter
- c++基础003
- 三大框架路由
- HTML5复习 (14)
- win8 win10 安装msi 提示2502、2503的错误代码