Esempio n. 1
0
        public void HashStrings()
        {
            KnotHash kh = new KnotHash();

            Assert.Equal("a2582a3a0e66e6e86e3812dcb672a272", kh.GenerateHash("", 64));
            Assert.Equal("33efeb34ea91902bb2f59c9920caa6cd", kh.GenerateHash("AoC 2017", 64));
            Assert.Equal("3efbe78a8d82f29979031a4aa0b16a9d", kh.GenerateHash("1,2,3", 64));
            Assert.Equal("63960835bcdc130f0b66d7ff4f6a5a8e", kh.GenerateHash("1,2,4", 64));
        }
        public int[][] Generate(string input)
        {
            List <int[]> hashes = new List <int[]>();

            for (int i = 0; i < GRID_SIZE; i++)
            {
                var hashed = _hasher.GenerateHash(input + "-" + i, KNOT_HASH_ROUNDS);
                var row    = hashed.Select(x => this._toBin(x.ToString()));
                hashes.Add(row.SelectMany(x => x).Select(x => int.Parse(x.ToString())).ToArray());
            }

            return(hashes.ToArray());
        }