对于与密码相关的项目,我正在寻找一种算法,该算法根据几个选项计算某个字符串可能具有的可能变化的数量。现在,字符串变体选项是大写/小写和字符到数字替换(如 E = 3 )
例如,我们取字符串' abc @ def'
只有上/下变化,有6个字符可以变化,可能变化的总数 2 ^ 6 = 64 。
只有字符到数字替换,有2个字符符合(A = 4,E = 3)。这使得变化的数量 2 ^ 2 = 4 。
我在计算两种方法启用时的变化数量时会遇到困难。 我已经尝试过(2 ^ 6 * 2 ^ 4),但显然这并不考虑应用这两者时发生的重叠。
例如,变种' abc @ def' 和' abc @ dEf' 都会导致& #39; abc @ d3f' 在de character E 上使用数字替换,应该算作一个。
不知怎的,我无法解决这个问题:)
答案 0 :(得分:2)
只需计算密码中每个字母的所有可能性,然后将它们相乘
: letter options count
a a A 4 3
b b B 2
c c C 2
@ @ 1
d d D 2
e e E 3 3
f f F 2
最后我们有3 * 2 * 2 * 1 * 2 * 3 * 2 == 144
个变体