Есть ли способ сгенерировать строку хэша MD5 типа varchar (32) без использования fn_varbintohexstr
SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'email@dot.com')), 3, 32)
Таким образом, его можно использовать внутри представления с помощью SCHEMABINDING
sql-server
tsql
sql-server-2008
Кодер скорби
источник
источник
Ответы:
источник
Используйте HashBytes
Это даст вам 0xF53BD08920E5D25809DF2563EF9C52B6
-
Это даст вам F53BD08920E5D25809DF2563EF9C52B6
источник
Решение:
источник
Ни один из других ответов не помог мне. Обратите внимание, что SQL Server даст разные результаты, если вы передадите жестко запрограммированную строку, а не передадите ее из столбца в наборе результатов. Ниже показано волшебство, которое помогло мне добиться идеального соответствия между SQL Server и MySql.
источник
LOWER()
необходимо только в том случае, если оно чувствительно к регистру.MD5
хэш по сравнению сMD5()
функциейPostgresql
. Мне было интересно, почемуMD5
хеши отличаются отPython
иPostgresql
. Спасибо за рецепт ..Для данных до 8000 знаков используйте:
Demo
Для двоичных данных (без ограничения 8000 байт) используйте:
Demo
источник
попробуй это:
источник
источник
работает для меня.
источник
Вы явно не сказали, что хотите, чтобы строка была шестнадцатеричной; если вы открыты для более экономичной кодировки строк base 64 и используете SQL Server 2016 или новее, вот альтернатива:
Это производит:
источник