![]() |
1
6
这叫做 security through obscurity “,这通常被认为是不好的。一个天生安全的方法总是更好的,即使唯一的区别在于你感觉不到拯救“因为他们不知道如何”。有人可以而且永远都会找到算法——通过仔细的分析、尝试和错误,或者因为他们通过ssh-ing到您的共享托管服务或其他一百种方法中的任何一种找到了源代码。 |
![]() |
2
6
使用数据的散列作为数据的盐是 不 安全。 salt的目的是从其他相同的输入中产生不可预测的结果。例如,即使许多用户选择了相同的输入(例如,作为密码),在应用一个好的salt之后,您(或攻击者)将无法辨别。 当salt是数据的函数时,攻击者 可以 预先计算查找表,因为每个密码的salt是可预测的。 最佳盐是从用随机种子初始化的密码伪随机数生成器中选择的。如果你真的不能储存额外的盐,可以考虑使用一些对每个用户都不同的东西(比如用户名),以及一些特定于应用程序的东西(比如域名)。这并不像随机的盐那么好,但它并没有致命的缺陷。 记住,salt不必是秘密的,但它不能是被salt的数据的函数。 |
![]() |
3
3
此优惠 只是散列没有进步 . 使用随机生成的盐。 盐析的目的是使两个按时间顺序不同的值的散列不同,这样做会中断预先计算的查找表。 考虑:
每当data=“test”时,hash将是常量。因此,如果攻击者拥有算法 总是 有算法)它们可以预先计算数据项字典的哈希值。 |
![]() |
4
3
这不是salt-您刚刚修改了hash函数。攻击者不必为原始哈希算法使用查找表,只需为修改后的哈希算法获取该表;这不会阻止查找表的使用。 |
![]() |
5
0
最好把真实的随机数据当作盐来使用。假设有一个实现,其中用户名ist作为salt值。这将导致“根”或“管理”等常用名称的安全性降低。 如果您不想为每个散列创建和管理salt值,那么可以使用一个强大的应用程序范围salt。在大多数情况下,这将是绝对足够的,而且许多其他东西将比散列更容易受到攻击。 |
|
AlwaysneedsHelp · 如何减少此处使用的内存量? 1 年前 |
![]() |
snake123 · 滚动到不同页面的锚点,URL中没有# 1 年前 |
![]() |
Jan · 密码salt是否应存储在数据库中 1 年前 |
![]() |
birb · RFC-6238 TOTP实现与示例不匹配 1 年前 |
![]() |
AishaWho · 请解释res=id^(id>>>32) 2 年前 |
![]() |
landings · 如何散列整数的环形缓冲区? 2 年前 |