Hash par Weinberger

Contenu du snippet

       public static uint Weinberger(byte[] Key)
        {
            int taille = Key.Length;
            uint M = 109;
            uint temp = 0;
            uint Res = 0;
            for (int i = 0; i < taille; i++)
            {
                Res = (Res * 16) + (uint) Key[i];
                if (Res > 268435456)
                {
                    temp = (Res / 268435456) * 268435456;
                    // 268435456 = 228
                    Res = Res + (temp / 16777216);
                    // 16777216 = 224
                    Res = Res - temp;
                }
            }
            return (Res);// % M);
        }

Compatibilité : C# 1.x, C# 2.x, C# 3.x

Disponible dans d'autres langages :

A voir également