public void Next1000Hashes() { var result = Enumerable.Range(0, 1000).Select(x => _md5.Md5Hash(Salt + x)); foreach (var hash in result) { Console.WriteLine(hash); } }
public IEnumerable <Day17MazeState> GetNextStates(Day17MazeState state) { if (state.Location.X == 3 && state.Location.Y == 3) { yield break; } //Console.WriteLine(state.Path); var hash = _hasher.Md5Hash(state.Path).ToLower(); if (IsOpen(hash[0]) && state.Location.Y > 0) //Up { yield return(new Day17MazeState(state, CompassBearing.North)); } if (IsOpen(hash[1]) && state.Location.Y < 3) //Down { yield return(new Day17MazeState(state, CompassBearing.South)); } if (IsOpen(hash[2]) && state.Location.X > 0) //Left { yield return(new Day17MazeState(state, CompassBearing.West)); } if (IsOpen(hash[3]) && state.Location.X < 3) //Left { yield return(new Day17MazeState(state, CompassBearing.East)); } }
public string CalculatePassword(string input) { var sb = new StringBuilder(); int index = 0; while (sb.Length < 8) { var hash = _md5Hasher.Md5Hash($"{input}{index}"); if (hash.StartsWith("00000")) { Console.WriteLine($"found a hash {hash}"); sb.Append(hash.Substring(5, 1)); } index++; } return(sb.ToString().ToLower()); }