我们是否需要在BCrypt中使用固定盐?

洛基

Brypt为每个密码生成随机盐。可以防止彩虹表攻击。但这可以防止暴力攻击吗?我的意思是,如果用户选择一个较弱的公知密码,则可以在公知密码列表上进行暴力攻击。因此,我的想法是将用户密码与固定的salt并最终与用户ID salt(即user pseudo)连接。如果攻击者无法访问该软件的代码(如果他仅对数据库进行黑客攻击),那么他将无法使用具有众所周知的密码列表的蛮力攻击来找到真实密码。

那么什么好方法呢?

Bcrypt(apassword) 

要么

bcrypt(apassword+pseudo)

要么

bcrypt(apassword+pseudo+fixedsalt)
马丁斯托克利

正如您所写,盐可以防止彩虹表攻击,也不能防止暴力破解,这是BCrypt的缓慢性,可以缓解暴力破解。BCrypt提供了一个成本因素,该成本因素控制了计算单个哈希值所需的时间。

通过使用服务器端密钥(如AES-256之类的任何算法)对计算得出的哈希值进行加密,可以更好地实现所需的附加保护。然后,该密钥不会成为哈希的一部分,并且可以在需要时进行交换。优点与固定盐(实际上称为Pepper)相同,只有在服务器上具有特权的攻击者才能开始破解密码哈希。我试图在本教程的末尾有关安全存储密码的方面进行解释。

因此,请让salt发挥作用,不要将其与其他任务混在一起,而是在以后加密密码哈希。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们是否需要在.net 4.0或4.5中使用此关键字

来自分类Dev

我们是否需要在 build.grade 文件中使用运行器和规则来运行仪器测试

来自分类Java

我们是否需要在春豆静态字段?

来自分类Dev

为什么我们需要在C ++头文件中使用“ #if defined Identifier”?

来自分类Dev

为什么我们需要在图灵的暂停证明中使用否定部分?

来自分类Java

为什么我们需要在Java中使用移位运算符?

来自分类Dev

我们什么时候需要在git中使用--track命令

来自分类Java

我们何时需要在android应用程序中使用runOnUiThread?

来自分类Dev

为什么我们需要在Inno Setup中使用#expr指令?

来自分类Dev

当我们需要在实际开发中使用$ digest()时?

来自分类Dev

为什么我们需要在Html.BeginForm中使用@using

来自分类Dev

为什么我们需要在IOS中使用类别?

来自分类Dev

我们什么时候需要在Form Recognizer标签工具中使用“撰写”选项?

来自分类Dev

我们需要在控制器中使用 async/await 关键字吗?

来自分类Dev

为什么我们需要在 ReactJs 中使用 web-pack?

来自分类Dev

我们何时需要在Amazon AWS RDS中使用较高的内存和CPU?

来自分类Dev

为什么我们需要在 Spring 中使用注解?

来自分类Dev

为什么我们需要在并发 GC 跟踪中使用 SATB 算法?

来自分类Dev

为什么我们需要在两个选择中使用 () 和?

来自分类Dev

为什么我们需要在 Spring Data JPA 中使用 @Transactional 注释 Service 类

来自分类Dev

我们是否需要在 MySQL 中的给定列上使用多个索引?

来自分类Java

我们是否需要在ArrayList上使用迭代器?

来自分类Java

我们是否需要在ehcache顶部使用兵马俑进行群集?

来自分类Dev

我们是否需要在ARC的UIAnimationBlocks内部使用__weak self?

来自分类Dev

使用 REST API 时,我们是否需要在 soql 查询中提供 LIMIT?

来自分类Dev

如果将http重定向到https nginx,我们是否需要在第二个服务器块中使用server_name

来自分类Dev

是否需要在我们想要验证是否使用Moq调用的Mock对象上设置方法的设置调用?

来自分类Dev

如果我们在flutter中使用ImagePicker库,是否需要显式实现ImageCache?

来自分类Dev

我们是否需要为Azure Functions中使用的.csx文件支付编译时间?

Related 相关文章

  1. 1

    我们是否需要在.net 4.0或4.5中使用此关键字

  2. 2

    我们是否需要在 build.grade 文件中使用运行器和规则来运行仪器测试

  3. 3

    我们是否需要在春豆静态字段?

  4. 4

    为什么我们需要在C ++头文件中使用“ #if defined Identifier”?

  5. 5

    为什么我们需要在图灵的暂停证明中使用否定部分?

  6. 6

    为什么我们需要在Java中使用移位运算符?

  7. 7

    我们什么时候需要在git中使用--track命令

  8. 8

    我们何时需要在android应用程序中使用runOnUiThread?

  9. 9

    为什么我们需要在Inno Setup中使用#expr指令?

  10. 10

    当我们需要在实际开发中使用$ digest()时?

  11. 11

    为什么我们需要在Html.BeginForm中使用@using

  12. 12

    为什么我们需要在IOS中使用类别?

  13. 13

    我们什么时候需要在Form Recognizer标签工具中使用“撰写”选项?

  14. 14

    我们需要在控制器中使用 async/await 关键字吗?

  15. 15

    为什么我们需要在 ReactJs 中使用 web-pack?

  16. 16

    我们何时需要在Amazon AWS RDS中使用较高的内存和CPU?

  17. 17

    为什么我们需要在 Spring 中使用注解?

  18. 18

    为什么我们需要在并发 GC 跟踪中使用 SATB 算法?

  19. 19

    为什么我们需要在两个选择中使用 () 和?

  20. 20

    为什么我们需要在 Spring Data JPA 中使用 @Transactional 注释 Service 类

  21. 21

    我们是否需要在 MySQL 中的给定列上使用多个索引?

  22. 22

    我们是否需要在ArrayList上使用迭代器?

  23. 23

    我们是否需要在ehcache顶部使用兵马俑进行群集?

  24. 24

    我们是否需要在ARC的UIAnimationBlocks内部使用__weak self?

  25. 25

    使用 REST API 时,我们是否需要在 soql 查询中提供 LIMIT?

  26. 26

    如果将http重定向到https nginx,我们是否需要在第二个服务器块中使用server_name

  27. 27

    是否需要在我们想要验证是否使用Moq调用的Mock对象上设置方法的设置调用?

  28. 28

    如果我们在flutter中使用ImagePicker库,是否需要显式实现ImageCache?

  29. 29

    我们是否需要为Azure Functions中使用的.csx文件支付编译时间?

热门标签

归档