这个问题类似于盲注攻击。目标是确定一个字符串的确切值,你唯一能做的测试就是看你指定的 DOS 风格通配符(? = 任意字符,* = 任意数量的任意字符)是否与该字符串匹配。(所以实际上你只能访问
直接的方法是对
bool DoesWildcardMatch(string wildcard)
函数)。直接的方法是对
a*,b*,c*...
进行测试,直到找到第一个字母,然后重复。我能想到的一些优化方法有:
- 搜索
*a*,*b*
等等,以确定字符集 - 当找到
*x*
的匹配时,执行分治策略(*a*x*,*b*x*,...
)