序言
因最近公司的业务需求,研究了一下根据时间进行动态密码生成,下面是源代码
import hmac, os
from datetime import datetime
def create_pwd():
# 获取当前UTC时间
time_str = datetime.utcnow().strftime('%Y-%m-%d')
#time_str = '2020-04-02'
# k共享密钥(令牌种子)
# 这k的值影响到你计算出来的密码结果,我也不太懂,与'md5'、'SHA512'这些有关,想了解请自行百度
k = '3123558694032490123'
# string -> bytes
b_k = bytes(k, encoding='utf-8')
b_t = bytes(time_str, encoding='utf-8')
# 加密算法
digestmod = 'MD5'
h = hmac.new(b_k, b_t, digestmod)
# 返回的16进制摘取6位
hex_final = str(h.hexdigest())[0:6]
# 转为10进制,这是只截取前6位
final = str(int(hex_final.upper(), 16))[0:6]
print(final)
if __name__=='__main__':
create_pwd()
日期为2020-04-02时,最后输出结果为151266
本人的经验分享,希望可以帮助到你们,如何不对的地方,可以评论留言,帮我指正一下,如果帮助了你,请给我点个赞吧