Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо checksum() връща същата стойност за различен низ

SQL CHECKSUM() и MD5 са Хеш функции . Хеширането е еднопосочен алгоритъм, който може да вземе произволен брой символи/байтове и да върне фиксиран брой символи/байтове.

Това означава, че без значение дали сте въвели 1 символ или цяла книга (Война и мир), ще получите същата дължина на отговора. Така че входът е безкраен брой комбинации, докато изходът е краен. Въз основа на това е неизбежно да получите един и същ хеш за различни стойности. Нарича се Хеш сблъсък . Добрите хеш алгоритми се опитват да смекчат това, за да затруднят намирането на тези сблъскващи се стойности.

Но достатъчно теория за хеширането. Ето точно отговора на въпроса ви. Какво представлява проблем с 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. Задачата на SQL Server Agent работи бавно

  2. Групиране на общия брой активни потребители за всяка от предходните 8 седмици

  3. Създаване на база данни в SQL Server 2012, скрипт и използване в 2008?

  4. Как да инсталирам localdb отделно?

  5. Ограничаване на рекурсията до определено ниво - Дублиране на редове