Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi checksum() renvoie la même valeur pour une chaîne différente

SQL CHECKSUM() et MD5 sont des Fonctions de hachage . Le hachage est un algorithme à sens unique qui peut prendre n'importe quel nombre de caractères/octets et renvoyer un nombre fixe de caractères/octets.

Cela signifie que peu importe si votre saisie est d'un caractère ou d'un livre complet (Guerre et Paix), vous obtiendrez la même longueur de réponse. Ainsi, l'entrée est un nombre infini de combinaisons tandis que la sortie est finie. Sur cette base, il est inévitable d'obtenir le même hachage pour différentes valeurs. Cela s'appelle Hash collision . Les bons algorithmes de hachage essaient d'atténuer cela pour rendre difficile la recherche de ces valeurs en collision.

Mais assez de théorie sur le hachage. Voici exactement la réponse à votre question. Qu'est-ce que problème avec CHECKSUM() ?