繁体   English   中英

python 等效 T-SQL 格式(散列)

[英]python equivalent T-SQL format (hashing)

如何在 python 中的 hash 等效于以下内容(更改 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中实现第一个output? 目前:

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)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM