|
|
1
24
我建议使用公认的算法,如中定义的PBKDF2 PKCS #5 version 2.0 从您的密码生成密钥。它与您概述的算法类似,但能够生成更长的对称密钥以用于AES。您应该能够找到一个开源库,为不同的算法实现PBE密钥生成器。 文件格式您也可以考虑使用 Cryptographic Message Syntax 作为文件的格式。这需要您进行一些研究,但仍然有现有的库可供使用,这为与其他软件(如支持S/MIME的邮件客户端)更顺畅地交互提供了可能性。 密码验证
或者,您可以在内容上计算MAC。密码上的哈希冲突更有可能对攻击者有用;内容上的哈希冲突可能毫无价值。但这将有助于让合法接收者知道解密时使用了错误的密码。 加密盐假设攻击者有一个可能的密码列表。他可以对每个密码进行散列,并将其与受害者密码的散列进行比较,看看是否匹配。如果列表很大,这可能需要很长时间。他不想在下一个目标上花费那么多时间,所以他将结果记录在一个“字典”中,其中哈希指向对应的输入。如果密码列表非常长,他可以使用 Rainbow Table 为了节省一些空间。 然而,假设他的下一个目标篡改了他们的密码。 -salt更改每个密码产生的哈希值。他必须重新散列列表中的所有密码,将目标的salt添加到输入中。每种不同的盐都需要不同的字典,如果使用了足够的盐,攻击者就没有空间为所有的盐存储字典。节省时间的交易空间不再是一种选择;攻击者必须退回到哈希列表中他想要攻击的每个目标的每个密码。 所以,没有必要对盐保密。确保攻击者没有与特定salt对应的预计算字典就足够了。 |
|
2
2
SHA-265 和 AES 用于哈希和加密。此外,我建议使用 Salt 当然,阅读 Bruce Schneier Applied Cryptography 也从来没有错过。 |
|
|
3
1
如果您使用的是强散列算法(SHA-2)和强加密算法(AES),那么使用这种方法就可以了。 |
|
|
4
1
|
|
|
5
0
是否真的需要将哈希密码保存到文件中。难道你不能在密码(或散列密码)上加一些盐,然后用它加密文件吗。解密时,请尝试使用密码+salt对文件进行解密。如果用户提供了错误的密码,则解密的文件不正确。 我能想到的唯一缺点是,如果用户不小心输入了错误的密码,并且解密速度很慢,他必须等待重试。当然,如果忘记了密码,就无法解密文件。 |
|
|
J P · Mac GPGSuite的密码过期 1 年前 |
|
|
Jeevan Gopinath · 在哪里保存用户登录的哈希密码? 2 年前 |
|
|
Jan · 密码salt是否应存储在数据库中 2 年前 |
|
|
Batman 21 · 在redis服务器/客户端上添加密码 3 年前 |
|
|
jsc · Powershell创建密码过期报告 8 年前 |