我正在为一个类编写程序,首先用预定的密钥加密字符串.那部分完成了.下一部分是我有问题或本身没有问题的地方.这是一个冗余的问题.在此之后,我应该对字符串和加密字符串执行KPA以找到密钥.这是有效的,但我使用15嵌套for循环的暴力.还有另一种方法吗?没有递归!
static String Key = null;
public static void main(String[] args) {
long startTime = System.nanoTime();
long startTime1 = System.currentTimeMillis();
int cntr = 0;
String key = "AAAAAAAAAAADDDAM";
String plaintext = "Secretfoemotherd";
StringBuilder cipher = new StringBuilder();
StringBuilder brutus = new StringBuilder();
byte[] ciphertext = encrypt(byteT(key), byteT(plaintext));
for (int i = 0; i < ciphertext.length; i++) {
cipher.append(ciphertext[i]);
}
while (true) {
char[] nkey = new char[16];
for (int i1 = 65; i1 < 122; i1++) {
nkey[0] = (char) …Run Code Online (Sandbox Code Playgroud) 嘿,我有一个列表,我希望得到它的所有不同的排列,即[A,B,C].
我想要它的所有不同组合.像[A,C,B],[B,A,C],[B,A,C],[C,A,B]和[C,B,A]我尝试使用itertools.combinations,我得到所有组合只是没有使用所有字母的组合.
matriks = ["A","B","C"]
combs=[]
for i in xrange(1, len(matriks)+1):
els = [list(x) for x in itertools.combinations(matriks, i)]
combs.append(els)
print(combs)
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出
[[['A'], ['B'], ['C']], [['A', 'B'], ['A', 'C'], ['B', 'C']], [['A', 'B', 'C']]]
Run Code Online (Sandbox Code Playgroud)