Encryption 加密:如何将8个字符的字符串转换为128位密钥、256位密钥等?
我试图对此进行研究,但仍有一些问题没有答案。我正在研究如何将8个字符的密码转换为高位加密密钥。在我的研究中,我发现了一些关于盐的价值的文章 假设您可以使用所有256个字符,那么8个字符的密码将是64位长。因此,剩下的64位只是一个salt值。如果我错了,请纠正我,但这样做是为了,如果有人要尝试所有可能的值(蛮力),他们必须尝试所有128位,因为即使是盐也是未知的 我的问题确实与“盐”的价值有关:Encryption 加密:如何将8个字符的字符串转换为128位密钥、256位密钥等?,encryption,cryptography,salt,Encryption,Cryptography,Salt,我试图对此进行研究,但仍有一些问题没有答案。我正在研究如何将8个字符的密码转换为高位加密密钥。在我的研究中,我发现了一些关于盐的价值的文章 假设您可以使用所有256个字符,那么8个字符的密码将是64位长。因此,剩下的64位只是一个salt值。如果我错了,请纠正我,但这样做是为了,如果有人要尝试所有可能的值(蛮力),他们必须尝试所有128位,因为即使是盐也是未知的 我的问题确实与“盐”的价值有关: 当有人提出申请时,盐值是硬编码的吗?如果是这样,难道不能通过对可执行文件进行反向工程来获得它吗 如果
4) 是的,我将添加一些链接。与安全相关的问题一样,这个答案会很长 首先,简单的答案。
问:如何将8个字符的字符串转换为128位的密钥?
A:一个没有 这是一个真实的回答。现在,一个更适合你的问题:
答:创建一个随机的64位值,并将其与密码一起存储在数据库中。现在,密码是密钥的一半,随机值是另一半 这是一个谎言。以下是您实际执行的操作:
答:使用产生128位或更长输出的方法将密码与随机salt一起散列。使用其中的128位作为密钥。把盐储存起来 现在来回答你们关于盐的问题。首先,salt的目的并不是真正延长加密密钥。这是为了防止人们构建彩虹表——从散列映射到未散列表单。要想知道您的加密没有更强,只需想象攻击者知道您的密钥扩展算法。现在,他不再猜测128位密钥,而是猜测您的64位密码,然后使用相同的算法。瞧。如果攻击者不知道盐,是的,你已经获得了一点,但是他们必须已经有你的密文来攻击他们,盐必须和密文一起存储在平原上。因此,这是一种不太可能的情况
/dev/random
的用途-系统熵池非常好。如果你担心的话,找一个更好的硬件RNG…除了这个“salt”值之外,还有其他方法可以将8个字符的字符串转换为强加密密钥吗 是的,但是 您可以计算散列