序言
因最近公司的业务需求,研究了一下根据时间进行动态密码生成,下面是源代码
import hmac, os
from datetime import datetimedef create_pwd():# 获取当前UTC时间time_str = datetime.utcnow().strftime('%Y-%m-%d')#time_str = '2020-04-02'# k共享密钥(令牌种子)# 这k的值影响到你计算出来的密码结果,我也不太懂,与'md5'、'SHA512'这些有关,想了解请自行百度k = '3123558694032490123'# string -> bytesb_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
本人的经验分享,希望可以帮助到你们,如何不对的地方,可以评论留言,帮我指正一下,如果帮助了你,请给我点个赞吧