基于字符映射生成密码所有可能组合的技术实现问题
问题:生成所有可能的密码组合
给定代表密码的字符串,以及包含常见字符与替换项的字符映射表,需要生成所有可能的密码组合列表:
- 映射表:
a=@、s=$、E=3、i=!、o=0 - 密码字符串:
password
部分可能的结果如下:
| 可能的结果 |
|---|
| p@ssword |
| p@$sword |
| pa$sword |
| p@s$word |
| p@$$word |
| pa$$word |
| pas$word |
| p@ssw0rd |
| p@$sw0rd |
| pa$sw0rd |
| p@s$w0rd |
| p@$$w0rd |
| pa$$w0rd |
| pas$w0rd |
| passw0rd |
目前采用的思路是「替换除当前索引外的所有字符」,但该方案无法得到完整结果,遗漏了约5种组合。现有代码无法正常运行,且尚未实现上述思路,代码如下:
for(int i = 0;i < arr.length;i++){ for(int j =i; j < arr.length ; j++){ if(map.containsKey(arr[j])){ arr[j] = map.get(arr[j]); } //list.add(arr); } list.add(arr); }
内容的提问来源于stack exchange,提问作者Waleed Mahmood
相关产品推荐
相关产品推荐

