Les Snippets

Connexion

Hash par Weinberger

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 20/02/2009 11:46:58 et initié par SwitchApocalyps [Liste]
Date de mise à jour : 24/04/2009 11:27:38
Vue : 4050
Catégorie(s) : Base de données, Algorithme
Langages dispo pour ce code :
- C# 1.x, C# 2.x, C# 3.x
- VB 2005, VB 2008, VB.NET 1.x
- VB6, VBA



Langage : C# 1.x , C# 2.x , C# 3.x
Date ajout : 20/02/2009
Posté par SwitchApocalyps [Liste]
       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);
        }
Remarque :
Le véritable algorithme de Weinberger retourne le Modulo du calcul (d'ou le dernier commentaire).
Langage : VB.NET 1.x , VB 2005 , VB 2008
Date ajout : 23/04/2009
Posté par Bidou [Liste]
DateMAJ : 23/04/2009

Public Function Weinberger(ByVal Key As Byte()) As UInteger
   Dim taille As Integer = Key.Length 
   Dim temp As UInteger = 0
   Dim Res As UInteger = 0 
   Dim i As Integer = 0
   While i < taille 
      Res = (Res * 16) + Key(i)

      If Res > 268435456 Then

         temp = (Res / 268435456) * 268435456

         ' 268435456 = 228

         Res = Res + (temp / 16777216)

         ' 16777216 = 224

         Res = Res - temp

      End If

      i += 1

   End While

   Return (Res) ' Mod M);

End Function

Langage : VB6 , VBA
Date ajout : 24/04/2009
Posté par Renfield [Liste]
DateMAJ : 24/04/2009

Public Function HashWeinberger(ByRef vzIn As Variant) As Long
Dim nTmp As Long
Dim nRes As Long
Dim i As Integer
Dim xbIn() As Byte
    Select Case VarType(vzIn)
        Case vbString
            xbIn = StrConv(vzIn, vbFromUnicode)
        Case vbLong, vbInteger, vbByte, vbDouble, vbSingle
            xbIn = StrConv(Trim$(Str$(vzIn)), vbFromUnicode)
        Case vbArray Or vbByte
            xbIn = vzIn
        Case Else
            Err.Raise 13
            Exit Function
    End Select

    For i = 0 To UBound(xbIn)
        nRes = (nRes * 16) + xbIn(i)
        If nRes > 268435456 Then
            nTmp = (nRes / 268435456) * 268435456
            nRes = nRes + (nTmp / 16777216) - nTmp
        End If
    Next i
    HashWeinberger = nRes
Handler:
End Function



Snippets en rapport avec : Recherche, Hashage, Hash, Weinberger



Codes sources en rapport avec : Recherche, Hashage, Hash, Weinberger

{C / C++ / C++.NET} ALGORITHME DE RECHERCHE DICHOTOMIQUE
Bonjour, Voila, beaucoup sur ce site cherche souvent des méthodes pour recherche une variable dan...

{C / C++ / C++.NET} TABLE DE HASHAGE [TS ENVTS]
table de hashage correspondances entre une chaine clef & une chaine de donnée ci joint la d...

{Javascript / DHTML} IMPLEMENTATION DE HASHTABLE
c'est l'implementation de java.util.HashTable en javascript pour ceux qui veulent la développé plus...

{PHP} RECHERCHE DE MOTIF DANS UNE IMAGE
Ce script permet de rechercher un motif dans une image. On lui donne deux images : le motif, et l...

{PHP} SEARCHMOTS
Recherche de mots dans un dictionnaire (378989 mots) Script php fonctionne sans BDD recherche ef...

{Python} PROGRAMME POUR LES MOTS CROISÉS
voici un petit programme très simple qui ouvre un dico et demande à l'utilisateur un mot avec des es...

{PHP} GESTION_ENSEIGNANTS
Une petite application en PHP et une base MySQL pour la gestion des informations utiles sur les ense...

{C / C++ / C++.NET} RECHERCHE D'ANNAGRAMMES
Un programme qui retrouve des mots à partir de lettres qu'on lui donne. Ca fait longtemps que je ne...

{C# / C#.NET} RECHERCHE ET GESTION DE FICHIERS PERSONNALISÉES
FileManager permet de rechercher des fichiers d'un certain type défini dans le fichier de config, mo...

{C# / C#.NET} CALCUL D'EMPREINTES DE FICHIERS
Cette petite source simple permet de calculer les empreintes (hash) MD5, RIPEMD160, SHA-1, SHA-256, ...