我希望能够根据给定的长度生成所有可能的字符串,坦率地说,我不知道如何编写代码。所以为了进一步解释,我和一个 friend 想演示一些基本的黑客技术,所以暴力破解就出现了。当然,他会是我的牺牲品,没有违法的事情。
然而,他唯一告诉我的是他的 PW 将是 4 个字符长,但我很确定他的 PW 不会出现在任何字典中,那太容易了。
所以我想到了生成每个可能的 4 字符长字符串的想法,其中包含 a-z 字符(无大写字母)。
有人会指导我们编写这样的算法吗?我真的不关心性能,如果需要 1 晚生成所有 PW,那没问题。
别忘了,这只是为了演示目的。
最佳答案
您可以按照使用数字的方式进行操作。从 aaaa 开始。然后增加“最不重要”的部分,所以 aaab。继续前进,直到到达 aaaz。然后增加到 aaba。重复直到到达 zzzz。
所以你需要做的就是实现
String getNext(String current)
对此进行扩展;这可能不是最快的做事方式,但却是最简单的正确方式。
正如一句古老的格言所说 - “先做对,再做快”。获得一个通过所有测试的有效实现(您确实有测试,对吗?)是您首先要做的。然后您重写它以使其更快,使用您的测试作为保证您不会破坏核心功能。
关于java - 从给定长度生成所有可能的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9175976/