确认密码有多少个无效等价类 - 智学轩城

确认密码有多少个无效等价类

线孟半头像

线孟半

2025-07-29 15:04:47

确认密码的无效等价类数量取决于密码策略的复杂性。其实很简单,我们可以这样分析:
1. 先说最重要的,如果密码策略只要求密码长度至少6位,那么理论上无效的等价类可能包括所有长度不足6位的密码组合。举个例子,如果我们考虑全字母组合,大概有(26^6)种可能的有效密码,那么无效的等价类就有(26^6)种。
2. 另外,如果密码策略包含大小写字母、数字和特殊字符,比如要求至少包含一个数字和一个特殊字符,那么无效等价类的数量会更大。比如说,假设密码必须包含至少一个数字和一个小写字母,以及至少一个特殊字符,那么无效的等价类就会因为这些复杂要求而大幅增加。
3. 还有个细节挺关键的,不同密码策略对特殊字符的要求也不尽相同,比如某些系统可能不允许使用某些特殊字符。比如,某些系统可能不允许使用反斜杠(\)或星号()等,这也会增加无效等价类的数量。
我一开始也以为无效等价类数量不会太多,但后来发现不对,因为密码策略的多样性使得无效等价类的数量可能非常大。等等,还有个事,如果密码策略还考虑了密码的历史记录,比如不允许重复使用最近5次输入的密码,那么无效等价类数量会进一步增加。
所以,具体无效等价类的数量取决于密码策略的具体要求。这个点很多人没注意,但我觉得值得试试,根据具体的密码策略来计算无效等价类的数量,这样可以帮助我们更好地设计安全的密码系统。

用叔延头像

用叔延

2026-01-15 09:54:07

这个问题得看具体情况了。像我们以前做软件测试的时候,通常情况下,确认密码的有效等价类就是两个:一个有效的,一个无效的。有效的就是跟用户名相同的密码,无效的嘛,比如空密码啦,或者长度不合规的密码。
举个例子,咱们2016年在上海的一家公司做测试项目,当时就遇到过这样的问题。他们的要求是密码长度必须在6到20个字符之间,而且不能全是数字或者全是字母。当时我们测试时就准备了两种情况,一种是用符合规范的密码,另一种是输入一个明显不合规的密码,比如全是数字的"123456",或者是空的。
当然,具体到有多少个无效等价类,还得看具体的需求。有些企业可能还会有其他的限制,比如不能包含某些特殊字符啦,或者不能和用户名相同之类的。不过,一般情况下,无效等价类就是两种:一个是符合规范但不等于用户名的,另一个就是不符合规范的了。当时我们也是这么测试的,没出啥大问题。说实话,我当时也没想明白为什么非得这么分类,可能就是为了提高安全性吧。

顾北清歌寒头像

顾北清歌寒

2026-04-12 16:49:00

6个无效等价类,包括大小写不一致、前后不一致、包含特殊字符等。