sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor checksum() returnerer den samme værdi for forskellige strenge

SQL CHECKSUM() og MD5 er Hash-funktioner . Hashing er en envejsalgoritme, som kan tage et hvilket som helst antal tegn/bytes og returnere et fast antal tegn/bytes.

Det betyder, at uanset om dit input er 1 karakter eller en hel bog (Krig og Fred), vil du få samme længde svar tilbage. Så input er uendeligt antal kombinationer, mens outputtet er endeligt. Baseret på det er det uundgåeligt at få den samme Hash for forskellige værdier. Det kaldes Hash-kollision . Gode ​​Hash-algoritmer forsøger at afbøde dette for at gøre det svært at finde disse kolliderende værdier.

Men nok teori om hashing. Her er præcis svaret på dit spørgsmål. Hvad er problem med CHECKSUM() ?



  1. Fjern reverseringspar ved hjælp af SQL

  2. Kan vi slette den fysiske fil fra serveren, når jeg sletter den tilsvarende post fra databasen?

  3. Ajax, JQuery html tabel genbestilling

  4. SQL-forespørgselsaggregater vises muligvis ikke i WHERE-sætningen