以下のコードでは、ランタイム変数である文字数のアルファベットの可能なすべての組み合わせを調べようとしています。
このコードの目的は、基本的に力ずくで文字列を推測する一種のパスワード クラッカーを構築することです。ループを使用したいのは、正しい組み合わせがヒットするとすぐにループを中断できるため、最初のステップで可能なすべての組み合わせの配列を構築しようとする場合に必要な時間とリソースを節約できるからです。
長さ 5 文字の文字列に対して機能する静的コードがありますが、実際には文字列の長さは任意です。任意の長さの文字列でコードを機能させるにはどうすればよいですか?
let len = textField.text?.characters.count //Length of string
let charRange = "abcdefghijklmnopqrstuvwxyz" //Allowed characterset
for char1 in charRange.characters {
for char2 in charRange.characters {
for char3 in charRange.characters {
for char4 in charRange.characters {
for char5 in charRange.characters {
// Do whatever with all possible combinations
}
}
}
}
}
どうにかして利用する必要があると思いますfor totalChars in 1...len {
が、for ループを動的に作成する方法がわかりませんか?