Czy istnieje sposób na wygenerowanie ciągu MD5 Hash typu varchar (32) bez użycia fn_varbintohexstr
SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', '[email protected]')), 3, 32)
Więc może być używany wewnątrz widoku z SCHEMABINDING
sql-server
tsql
sql-server-2008
Grief Coder
źródło
źródło
Odpowiedzi:
źródło
Użyj HashBytes
To da ci 0xF53BD08920E5D25809DF2563EF9C52B6
-
To da ci F53BD08920E5D25809DF2563EF9C52B6
źródło
Rozwiązanie:
źródło
Żadna z pozostałych odpowiedzi nie działała dla mnie. Zwróć uwagę, że SQL Server da inne wyniki, jeśli przekażesz ciąg zakodowany na stałe w porównaniu z podawaniem go z kolumny w zestawie wyników. Poniżej znajduje się magia, która zadziałała, aby zapewnić idealne dopasowanie między SQL Server i MySql
źródło
LOWER()
jest konieczne tylko wtedy, gdy rozróżnia się wielkość liter.MD5
hash w porównaniu zMD5()
funkcjąPostgresql
. Zastanawiałem się, dlaczegoMD5
hasz różni się odPython
iPostgresql
. Dzięki za przepis ...Dla danych do 8000 znaków użyj:
Demo
Dla danych binarnych (bez limitu 8000 bajtów) użyj:
Demo
źródło
Spróbuj tego:
źródło
źródło
pracuje dla mnie.
źródło
Nie powiedziałeś wyraźnie, że chcesz, aby ciąg był szesnastkowy; Jeśli jesteś otwarty na bardziej efektywne miejsce w kodowaniu ciągów bazowych 64 i używasz SQL Server 2016 lub nowszego, oto alternatywa:
To daje:
źródło