我对密码加密练习有一个要求,其中密码的盐是静态的,并business_id+business_start_date根据客户的企业 ID 和开始日期设置为 ( ) 值。在 BCrypt 文档中,据说 BCrypt 在生成的哈希值中内置了盐,以防止彩虹表攻击。大多数示例使用 gensalt(int log_rounds) 函数。
IMO,我肯定会像其他人一样使用动态盐,因为它更容易实现。但是,如果仍然坚持实施静态盐散列,是否有办法让 BCrypt 接受静态散列或;如果不可能,我可以使用哪些其他加密来满足该要求?
该应用主要是80%的阅读内容,少量的创建、更新、删除操作。
我刚刚做了一个测试,尝试使用静态盐对密码进行哈希处理。
该方法在 BCrypt 实用程序类中使用:
public static String hashPassWord(String textPassword, String salt){
String hashPassword = BCrypt.hashpw(textPassword, salt);
return hashPassword;
}
我正在测试的盐是纯文本格式的,例如(busId:3,businessDate:2019-02-04)
String salt = new StringBuilder(busId).append(businessDate).toString();
我也有这个方法作为备用,轮数(工作量)设置为10。
public static String hashPassword(String textPassword){
String salt = BCrypt.gensalt(workload);
String hashPassword = BCrypt.hashpw(textPassword, salt);
return hashPassword;
}
当执行 hashpw() 函数时,无效的盐版本错误会被抛出到异常中。
一只甜甜圈
相关分类