繁体   English   中英

python 等效于 hash 用于 SQL 查询

[英]python equivalent hash for SQL query

我正在使用以下 SQL 查询生成任何给定 URL 的md5 hash

select CONVERT(NVARCHAR(50),HASHBYTES('MD5',convert(nvarchar(2000),'https://alpena-mi.geebo.com/jobs-online/view/id/760191457-advanced-medical-support-assistant-/')),1)

生成的 Hash 0x9CA5B450B714C6C07BD1904D3080B4E4

谁能告诉我如何使用 python 为任何给定的 URL 生成相同的 hash

Python 有一个 hashlib 库。 使用 URL 时,您需要在散列它的同时对其进行编码。

import hashlib

result = hashlib.sha256("https://alpena-mi.geebo.com/jobs-online/view/id/760191457-advanced-medical-support-assistant-/".encode('utf-8')).hexdigest()

print(result)

要生成 md5 hash,您可以使用 python 中的 hashlib 库。 按照下面的示例代码

import hashlib
print(hashlib.md5('https://alpena-mi.geebo.com/jobs-online/view/id/760191457-advanced-medical-support-assistant-/').hexdigest())

哈希码将为5cf4fb86bb9ce08c17c54f9dba061413

在您的示例中,您已使用 nvarchar 转换 URL 字符串。 您可以使用 varchar 或 ZE83AED3DDF4667DEC0DAAAACB2BB3BE0BZ 而不是 nvarchar 来生成预期的 md5 hash。 更多原因: 为什么在 sql 服务器中生成的 MD5 hash 不相等?

SELECT CONVERT(NVARCHAR(50),HASHBYTES('MD5',convert(varchar(2000),'https://alpena-mi.geebo.com/jobs-online/view/id/760191457-advanced-medical-support-assistant-/')),2)

SELECT CONVERT(NVARCHAR(50),HASHBYTES('MD5',SUBSTRING('https://alpena-mi.geebo.com/jobs-online/view/id/760191457-advanced-medical-support-assistant-/',0,2000)),2)

暂无
暂无

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

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