Подтвердить что ты не робот

Есть ли эквивалент SHA1() в MS-SQL?

Преобразование пары хранимых процедур с MySQL на сервер Microsoft SQL. Все идет хорошо, за исключением одной процедуры, использующей функцию MySQL SHA1(). Я не могу найти эквивалент этого в MS-SQL.

Кто-нибудь знает действительный эквивалент для SHA1() на MS-SQL?

4b9b3361

Ответ 1

SQL Server 2005 и более поздние версии имеют функцию HashBytes().

Ответ 2

Если вы хотите получить хэш SHA1 точно так же, как MySQL его сгенерировал (т.е. как varchar), вы можете объединить HashBytes с sys.fn_varbintohexsubstring. Например.

SELECT sys.fn_varbintohexsubstring(0, HashBytes('SHA1', 'password'), 1, 0)

Подробнее см. http://accessrichard.blogspot.co.nz/2010/12/sql-server-and-net-equivalent-to-php.html.

Ответ 4

Вы также можете проверить http://www.stev.org/post/2011/01/30/MS-SQL-SHASum-Support.aspx, вы можете изменить его, чтобы создать что угодно. Хотя может потребоваться некоторое кодирование С#.