我想根据当前日期和时间生成一个固定长度(比如说 10 个字符)的散列。此哈希将附加到我的用户上传的文件的名称。我怎样才能在 Python 中做到这一点?
原文由 tamakisquare 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想根据当前日期和时间生成一个固定长度(比如说 10 个字符)的散列。此哈希将附加到我的用户上传的文件的名称。我怎样才能在 Python 中做到这一点?
原文由 tamakisquare 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为我的评论是一个合理的答案,所以我要发布它。该代码使用 python time() 函数来获取自 unix 纪元以来的秒数:
import time
import datetime
ts = int(time.time()) # this removes the decimals
# convert the timestamp to a datetime object if you want to extract the date
d = datetime.datetime.fromtimestamp(ts)
时间戳目前是一个 10 位整数,可以很容易地转换回日期时间对象以供其他用途。如果您想进一步缩短时间戳的长度,您可以将数字编码为十六进制或其他格式。 IE。
hex(int(time.time()))
如果删除 0x
前缀,这会将长度减少到 8 个字符
编辑:
在您的评论中,您指定您不希望人们弄清楚原始日期,所以我建议您这样做:
hex(int(time.time() + 12345))[2:] #The [2:] removes the 0x prefix
只需选择一个数字并记住在尝试提取时间戳时减去它。如果不知道这个数字,用户将很难从您的代码中推断出真实日期。
int(stamp,16) - 12345
原文由 GWW 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
电池包括:
Python3
蟒蛇2