Exemplo n.º 1
0
        public static bool AddHashIfExists(string value, bool addToAllHashList = true, IProgressReport progress = null)
        {
            value = value.ToLowerInvariant();
            uint hash = Archive.Crc32(value);
            long key  = (long)value.Length << 32 | hash;

            if (addToAllHashList)
            {
                AllHashStrings[key] = value;
            }

            if (Hashes.Contains(key) && !HashStrings.ContainsKey(key) && !value.Contains('%'))
            {
                HashStrings[key] = value;
                NewStrings[key]  = value;
                if (progress == null)
                {
                    Console.WriteLine($"Found new hash {value}");
                }
                else
                {
                    progress.LogMessage($"Found new hash {value}");
                }

                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
        public static void AddHash(string value)
        {
            value = value.ToLowerInvariant();
            uint hash = Archive.Crc32(value);
            long key  = (long)value.Length << 32 | hash;

            //HashStrings.Add(key, value);
            HashStrings[key]    = value;
            AllHashStrings[key] = value;
        }
Exemplo n.º 3
0
        public static void AddPerms(int len, char start, char end)
        {
            Console.WriteLine(len);
            if (len == 0)
            {
                return;
            }

            var lenOr = (long)len << 32;
            var val   = new char[len];

            for (int i = 0; i < len; i++)
            {
                val[i] = start;
            }

            while (true)
            {
                for (int i = len - 1; i >= 0; i--)
                {
                    bool carry = val[i] == end;
                    val[i]++;
                    if (!carry)
                    {
                        break;
                    }
                    if (i == 0)
                    {
                        return;
                    }
                    val[i] = start;
                }

                var hash = Archive.Crc32(val) | lenOr;
                if (Hashes.Contains(hash))
                {
                    AddHashIfExists(new string(val).ToLowerInvariant());
                }
            }
        }
Exemplo n.º 4
0
        public static long DoHash(string str)
        {
            var hash = Archive.Crc32(str);

            return((long)str.Length << 32 | hash);
        }
Exemplo n.º 5
0
 public Hash(string value)
 {
     Crc = Archive.Crc32(value);
     Len = (byte)value.Length;
 }