python根据日期生成动态密码

序言

因最近公司的业务需求,研究了一下根据时间进行动态密码生成,下面是源代码

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


本人的经验分享,希望可以帮助到你们,如何不对的地方,可以评论留言,帮我指正一下,如果帮助了你,请给我点个赞吧

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值