本文整理汇总了C#中Executor.ComputeNextKey方法的典型用法代码示例。如果您正苦于以下问题:C# Executor.ComputeNextKey方法的具体用法?C# Executor.ComputeNextKey怎么用?C# Executor.ComputeNextKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Executor
的用法示例。
在下文中一共展示了Executor.ComputeNextKey方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
public static void Main(string[] args)
{
Console.WriteLine("Enter string to match:");
string toMatch = Console.ReadLine();
Console.WriteLine("Start to compute keys, trying to find match for \"{0}\".", toMatch);
char[] keyspace = new char[] {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
'F','G','H','I','J','K','L','M','N','O','P','Q','R',
'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
'6','7','8','9','0','!','$','#','@','-'
};
Executor executor = new Executor(keyspace);
var iterations = Program.GetEstimatedIterations(keyspace, toMatch.ToCharArray());
Console.WriteLine("Need to compute {0} keys to match your input.", iterations);
// just a rough estimation
Console.WriteLine("Approximate time needed: {0} ms", iterations / 5000);
char[] lookupKey = toMatch.ToCharArray();
bool isMatched = false;
ulong generatedKeyCount = 0;
Stopwatch stopWatch = Stopwatch.StartNew();
while(!isMatched) {
char[] currentKey = executor.ComputeNextKey();
generatedKeyCount++;
if (generatedKeyCount % 500000 == 0) {
Console.Write('.');
}
if (currentKey.Length != lookupKey.Length) {
continue;
}
for(var i = currentKey.Length - 1; i >= 0; i--) {
if (!(currentKey[i] == lookupKey[i])) {
break;
}
if (i == 0) {
isMatched = true;
}
}
}
stopWatch.Stop();
Console.WriteLine("Found match.");
Console.WriteLine("Generated {0} keys, took {1}ms.", generatedKeyCount, stopWatch.ElapsedMilliseconds.ToString());
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}