예제 #1
0
        public CryptoHashCodeTable(string seed)
        {
            _HashCodes = new CryptoHashCode[CryptoService.Providers.Length];

            foreach (CryptoHashCodeProvider hcp in CryptoService.Providers)
            {
                _HashCodes[hcp.ProviderID] = CryptoGenerator.GenHashCode(hcp.ProviderID, seed);
            }

            _ExtendedHashCodes = new Dictionary <int, CryptoHashCode>(CryptoService.ExtendedProviders.Count);

            foreach (CryptoHashCodeProvider hcp in CryptoService.ExtendedProviders.Values)
            {
                if (_ExtendedHashCodes.ContainsKey(hcp.ProviderID))
                {
                    _ExtendedHashCodes[hcp.ProviderID] = CryptoGenerator.GenHashCode(hcp.ProviderID, seed);
                }
                else
                {
                    _ExtendedHashCodes.Add(hcp.ProviderID, CryptoGenerator.GenHashCode(hcp.ProviderID, seed));
                }
            }

            _UID = GenerateUID(this);
        }
예제 #2
0
 public CryptoHashCodeTable(string seed)
 {
     AddRange(CryptoService.Providers.Keys.Select(type => CryptoGenerator.GenHashCode(type, seed)));
 }
예제 #3
0
 public static CryptoHashCode GenerateUID(CryptoHashCodeTable table)
 {
     return(CryptoGenerator.GenHashCode(CryptoHashType.MD5, String.Join("+", table)));
 }