將一對存儲過程從MySQL轉換爲Microsoft SQL Server。一切都很順利,除了一個程序使用MySQL SHA1()
函數。我似乎無法在MS-SQL中找到與此相同的內容。在MS-SQL中是否存在與SHA1()等價的內容?
有沒有人知道在MS-SQL上有效的SHA1()
等價物?
將一對存儲過程從MySQL轉換爲Microsoft SQL Server。一切都很順利,除了一個程序使用MySQL SHA1()
函數。我似乎無法在MS-SQL中找到與此相同的內容。在MS-SQL中是否存在與SHA1()等價的內容?
有沒有人知道在MS-SQL上有效的SHA1()
等價物?
SQL Server 2005及更高版本具有HashBytes()函數。
看起來很完美,我在泄漏時回答。我喜歡stackoverflow。謝謝! – GEOCHET 2008-10-08 19:34:00
從谷歌羣體 - A Possibility
我不相信有原生支持,但是你可能要檢查了這一點...
您可能還需要檢查出http://www.stev.org/post/2011/01/30/MS-SQL-SHASum-Support.aspx你應該可以修改它以產生任何你想要的東西。儘管可能需要一些C#編碼。
如果你想獲得一個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。
如果這是爲了存儲密碼,我不得不提及在大多數情況下簡單地散列原始字符串不夠好。原因如下:http://www.md5decrypter.co.uk/sha1-decrypt.aspx ......其中包括許多彩虹桌,並且最近扭轉非醃製密碼的做法相當微不足道,因爲的。 – dodexahedron 2012-08-31 01:59:37