sql >> Databáze >  >> RDS >> Sqlserver

Proč checksum() vrací stejnou hodnotu pro jiný řetězec

SQL CHECKSUM() a MD5 jsou Hashovací funkce . Hašování je jednosměrný algoritmus, který může vzít libovolný počet znaků/bajtů a vrátit pevný počet znaků/bajtů.

To znamená, že bez ohledu na to, zda je váš příspěvek 1 postava nebo celá kniha (Válka a mír), dostanete zpět stejně dlouhou odpověď. Vstup je tedy nekonečný počet kombinací, zatímco výstup je konečný. Na základě toho je nevyhnutelné získat stejný hash pro různé hodnoty. Říká se tomu kolize hash . Dobré hashové algoritmy se to snaží zmírnit, aby bylo obtížné najít tyto kolidující hodnoty.

Ale dost teorie o hašování. Zde je přesně odpověď na vaši otázku. Co je problém s CHECKSUM() ?



  1. Jak mohu ověřit data před vložením/aktualizací pomocí SQL Serveru?

  2. Získejte výsledky, které spadají do okruhu značek z databáze

  3. Jak monitorovat sdružování připojení pro .NET MySQL Data Connector ve službě IIS

  4. Jak používat řazení (pořadí podle) v příkazu Select v SQL Server - SQL Server / Výukový program TSQL, část 109