如何从python中的字符串生成13位数字

2024-09-30 08:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python创建条形码报告,并使用reportlab。我可以从一个13位数字生成一个EAN13条码。在

如何从任何字符串生成一个13位数的数字,以便每次使用同一字符串时都生成相同的数字。在

例如

str1 = 'abcxyz123'
## do something on str1
## a 13 digit number is generated e.g. 2134332512345 is generated everytime when string is 'abcxyz123'

Tags: 字符串ison报告数字doean13something
1条回答
网友
1楼 · 发布于 2024-09-30 08:27:42

您可以简单地使用hashLib作为:

import hashlib

str1 = 'abcxyz123'
str2 = 'abcxyzhjk'
str3 = 'abcxyz123'

hash1 = hashlib.sha1()
hash1.update(str1)
print str(int(hash1.hexdigest(), 16))[:13]
>>> 2655706373072

hash2 = hashlib.sha1()
hash2.update(str2)
print str(int(hash2.hexdigest(), 16))[:13]
>>> 1219934364452

hash3 = hashlib.sha1()
hash3.update(str3)
print str(int(hash3.hexdigest(), 16))[:13]
>>> 2655706373072

hash.hexdigest()返回十六进制值,可以使用int(hex, 16)轻松地将其转换为整数,然后将整数限制为13位数,方法是将其转换为str(),然后对字符串进行切片。在

相关问题 更多 >

    热门问题