【发布时间】:2023-06-13 22:54:01
【问题描述】:
我正在为学校编写密码管理器,我想知道我应该改进或改变什么。 它是这样工作的:
为了保存主密码,我在SHA3-512 之上创建了一个带有PBKDF2 512bytes output 散列密码的文件。使用随机的128byte 盐和随机的迭代次数(这是问题的重点)。
所有这些数据都保存在文件中,并使用伪随机生成器进行加扰,该生成器的种子是从密码本身生成的(这种方式更难获得盐)。
然后存储密码的文件用AES 256加密,从用户PC伪唯一标识符生成salt。
当用户选择密码时,要求是:最少 10 个字符并且不在100.000 最常用密码列表中(我在互联网上的某个地方得到了这个列表,可能已经过时了)
好吧,我有几个问题:PBKDF2 的当前标准迭代计数是多少?
PBKDF2 输出字节长度重要吗?我的意思是更长的长度 = 更高的安全性?
更长的盐会给我额外的安全感吗?
它保存在文件中的盐,因此“可能”检索它,有没有比仅仅加扰字节更好的方法来“隐藏”它?
【问题讨论】:
-
re:迭代计数:我通常在野外看到 5k-20k,但恕我直言,非固定计数更好;也许将第一个字母的 ascii 值添加到计数中,这样像开膛手 john 这样的东西的难度会增加 93 倍。
标签: security encryption hash passwords