假设使用SHA 256哈希和扩展ASCII字符集的完全随机密码,是否存在一个特定的长度,在此之后,额外的字符不会增加熵?如果有,请问这个长度是多少?
谢谢。
谢谢。
SHA-256算法具有256位,显而易见。UTF-8编码中,字符的最小长度为1字节,即8位。因此,任何超过256/8=32个字符的密码都极有可能与较短的密码发生碰撞。
这是您想表达的意思吗?
哈希并不能增加熵,它只是将熵提炼出来。由于SHA256生成256位的输出,如果你提供的密码是完全不可预测的(即每个输入位代表一位熵),那么超过256位的输入就几乎是浪费的。
除了真正的随机源之外,很难获得每个输入位都具有一位熵的输入。对于典型的英文文本,香农的测试显示每个字符大约有一位熵。
我认为没有“有效”的限制。只要密码被有效地创建(通常规则,不使用单词,混合数字、字母、大小写和字符),任何长度的密码都是有效的。最好强制用户遵循这些规则而不是限制长度。但应该强制实施最小长度,例如8-10个字符,以保护用户免受自己的伤害。