Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego suma kontrolna() zwraca tę samą wartość dla innego ciągu?

SQL CHECKSUM() i MD5 to funkcje skrótu . Haszowanie to jednokierunkowy algorytm, który może pobierać dowolną liczbę znaków/bajtów i zwracać ustaloną liczbę znaków/bajtów.

Oznacza to, że bez względu na to, czy wprowadzisz 1 znak, czy całą książkę (Wojna i pokój), otrzymasz taką samą odpowiedź. Tak więc wejście jest nieskończoną liczbą kombinacji, podczas gdy wyjście jest skończone. Na tej podstawie nieuniknione jest uzyskanie tego samego skrótu dla różnych wartości. Nazywa się to Kolizja skrótu . Dobre algorytmy haszujące starają się to złagodzić, aby utrudnić znalezienie tych kolidujących wartości.

Ale dość teorii o haszowaniu. Oto dokładnie odpowiedź na twoje pytanie. Co to jest problem z CHECKSUM() ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamicznie wybierz kolumnę w zapytaniu SQL

  2. Typowe wpadki serwera SQL

  3. Uciekanie symboli specjalnych w Sqlcmd

  4. Funkcja formatu daty SQL Server

  5. Jak ustawić nazwę aplikacji w parametrach połączenia ADODB?