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); }
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; }
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()); } } }
public static long DoHash(string str) { var hash = Archive.Crc32(str); return((long)str.Length << 32 | hash); }
public Hash(string value) { Crc = Archive.Crc32(value); Len = (byte)value.Length; }