private void Test()
        {
            _state = new BruteforceState("program.state");
            var             resultLog       = new FileResultLog("results.txt");
            HashBruteforcer hashBruteforcer = new HashBruteforcer(_passportHashes, 8, _state, resultLog);

            hashBruteforcer.Wait();

            resultLog.Dispose();

            using var streamReader = File.OpenText("results.txt");
            Dictionary <int, int> counters = new Dictionary <int, int>();

            while (!streamReader.EndOfStream)
            {
                ReadOnlySpan <char> line = streamReader.ReadLine();
                var series = line.Slice(0, 4);
                if (int.TryParse(series, out var intSeries))
                {
                    if (!counters.TryGetValue(intSeries, out int counter))
                    {
                        counters.Add(intSeries, 1);
                    }
                    else
                    {
                        counters[intSeries] = counter + 1;
                    }
                }
            }
            var lineSeries = new OxyPlot.Series.LineSeries()
            {
                CanTrackerInterpolatePoints = false
            };

            for (int i = 0; i < 10000; i++)
            {
                if (counters.TryGetValue(i, out var count))
                {
                    lineSeries.Points.Add(new OxyPlot.DataPoint(i, count));
                }
                else
                {
                    lineSeries.Points.Add(new OxyPlot.DataPoint(i, 0));
                }
            }

            _plotModel.Series.Add(lineSeries);

            foreach (var axis in _plotModel.Axes)
            {
                axis.AbsoluteMinimum = 0;
                axis.Minimum         = 0;
            }

            _plotModel.InvalidatePlot(true);
        }
예제 #2
0
 public HashBruteforcer(HashSet <string> hashes, int threadCount, BruteforceState state, IResultLog log)
 {
     _threads = new Thread[threadCount];
     _state   = state;
     _hashes  = hashes;
     _log     = log;
     for (int i = 0; i < _threads.Length; i++)
     {
         _threads[i] = new Thread(BruteForceThread);
         _threads[i].Start(i);
     }
 }
예제 #3
0
        private void Test()
        {
            _state = new BruteforceState("program.state");
            var             resultLog       = new FileResultLog("results.txt");
            HashBruteforcer hashBruteforcer = new HashBruteforcer(_passportHashes, 8, _state, resultLog);

            hashBruteforcer.Wait();

            resultLog.Dispose();

            using var streamReader = File.OpenText("results.txt");
            Dictionary <int, int> counters = new Dictionary <int, int>();

            while (!streamReader.EndOfStream)
            {
                ReadOnlySpan <char> line = streamReader.ReadLine();
                var series = line.Slice(0, 4);
                if (int.TryParse(series, out var intSeries))
                {
                    if (!counters.TryGetValue(intSeries, out int counter))
                    {
                        counters.Add(intSeries, 1);
                    }
                    else
                    {
                        counters[intSeries] = counter + 1;
                    }
                }
            }
            var lineSeries = new OxyPlot.Series.LineSeries()
            {
                CanTrackerInterpolatePoints = false
            };

            foreach (var pair in counters)
            {
                lineSeries.Points.Add(new OxyPlot.DataPoint(pair.Key, pair.Value));
            }
            lineSeries.Points.Sort((x, y) => Math.Sign(x.X - y.X));


            _plotModel.Series.Add(lineSeries);

            _plotModel.InvalidatePlot(true);
        }