如何在python中进行等价的哈希(改变sql部分是不可能的,只能模仿python中的行为)。
SELECT HASHBYTES('SHA2_256', FORMAT(1234, ''))
output: 0x4F37C061F1854F9682F543FECB5EE9D652C803235970202DE97C6E40C8361766
这是不同的。
SELECT HASHBYTES('SHA2_256','1234')
SELECT HASHBYTES('SHA2_256',CAST(1234 as VARCHAR(100)))
output: 0x03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4
如何在python中实现第一个输出?目前。
from hashlib import sha256
sha256('1234'.encode()).hexdigest().upper()
output: 03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4
结果是 Format( 1234, '' )
是一个 NVarChar
:
select sql_variant_property(FORMAT(1234, ''), 'basetype');
你可以 cast
的值,以获得所需的结果。
SELECT HASHBYTES('SHA2_256',CAST(FORMAT(1234, '') as VARCHAR(100)));