当前位置: 首页>>代码示例>>C#>>正文


C# Executor.ComputeNextKey方法代码示例

本文整理汇总了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);
        }
开发者ID:mfuzailzubari,项目名称:Brutus,代码行数:53,代码来源:Program.cs


注:本文中的Executor.ComputeNextKey方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。