|
|
1
7
简而言之,您需要每个用户的salt和一个好的散列函数。MD5很糟糕,而SHA-1不再是“好的”。您应该使用类似bcrypt的系统来强制攻击者在每个哈希上花费相当多的一秒钟时间。每次密码检查0.1秒对你来说可能没什么大不了的,但它对任何暴力破解都是毁灭性的。 执行密码安全方案的任何人都需要阅读: |
|
|
2
4
关于1,如果
关于2,硬编码的salt值通常很容易通过反编译或运行时内存检查进行反向工程,即使代码模糊程度适中。这只会在应用程序被严格托管并且没有人能够控制已编译的应用程序的情况下有助于提高安全性。 关于3: What is the optimal length for a password hash? (所以链接)-16是好的! 关于4,实现“更真实”的随机数并没有太多工作,这取决于您所使用的平台。例如,如果可以 tradeoff some performance 为了产生你的种子/随机数,你可能会比真正随机的盐更容易呼吸。 |
|
|
3
2
|
|
|
4
2
1)不。攻击者可能会将系统中的所有内容都倾倒到您的系统中,并最终找到盐(尽管这会很烦人)。 2)是的,如果另一个系统使用与您相同的散列方案,并且您的某些盐重叠,这对您有一点好处。 3)对盐的唯一要求是它对每个用户都是唯一的。长度与安全无关- 盐不是关键 尽管大家都很困惑。64位随机盐永远不会重复。您还可以使用32位计数器,如果用户ID是唯一的,也可以使用它们。 4)盐甚至需要随机性(如果使用随机盐)的唯一原因是确保唯一性。这是统计随机性,而不是密码随机性(无法猜测)。所以任何随机数库都可以。 |
|
|
Michael · 某些Windows客户端上的命名管道安全问题 1 年前 |
|
|
adamency · 是否可以从Go二进制文件的源代码中检索字符串? 2 年前 |
|
|
AlboSimo · PayPal Api密钥安全 2 年前 |