使用随机16进制字符串和16进制时间戳生成token

import json
import hmac
import time
import datetime
import random

h_sk = "63QhvMPaWCdyARXhXxkfMQ=="
# 16进制本地时间戳
now_tm = (datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
time_array = time.strptime(now_tm, '%Y%m%d%H%M%S')
stamp_tm = int(time.mktime(time_array))
c_tm = hex(stamp_tm)[2:]
tt = str(c_tm).upper()
# 随机16进制字符串
def random_hex(length):
    result = hex(random.randint(0,16**length)).replace('0x','').upper()
    if(len(result)<length):
        result = '0'*(length-len(result))+result
    return result.upper()
result =random_hex(length=16)
url = 'xxx'
body = {
"zz" : "xxx"
}

def body_gene_token(num_hex, time_hex, url, body, sk):
    # post请求
    ck = hmac.new(sk.encode(), num_hex.encode(), 'sha256')
    token_str = url + time_hex + json.dumps(body, separators=(",", ":"))
    token = hmac.new(ck.hexdigest().encode(), token_str.encode(), 'sha256')
    h_token = num_hex + "|" + time_hex + "|" + token.hexdigest().upper()
    return h_token
def nobody_gene_token(num_hex, time_hex, url, sk):
    # get请求
    ck = hmac.new(sk.encode(), num_hex.encode(), 'sha256')
    token_str = url + time_hex
    token = hmac.new(ck.hexdigest().encode(), token_str.encode(), 'sha256')
    i_token = num_hex + "|" + time_hex + "|" + token.hexdigest().upper()
    return i_token
if __name__ == '__main__':
    body_gene_token(num_hex=result,time_hex=tt,url=url,body=body,sk=h_sk)
    nobody_gene_token(num_hex=result,time_hex=tt,url=url,sk=h_sk)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值