• 生成otp token 脚本


    #!/usr/bin/python3
     
    import re
    import time
    import hashlib
    import struct
    import base64
    import hmac
    from random import choice
    from string import ascii_letters, digits
    from sys import argv
    secret = '这里是你的secret'
    mangling_string = 'ASGIw3gQMAbEw6z4u8xxmfwYx5qG4b16'
    def get_hotp_token(secret, intervals_no):
    key = base64.b32decode(secret, True)
    msg = struct.pack(">Q", intervals_no)
    h = hmac.new(key, msg, hashlib.sha1).digest()
    o = h[19] & 15
    h = (struct.unpack(">I", h[o:o+4])[0] & 0x7fffffff) % 1000000
    return h



    def get_totp_token(secret):
    return get_hotp_token(secret, intervals_no=int(time.time())//30)



    def xor_crypt_string(data, key='awesomepassword', encode=False, decode=False):
    from sys import byteorder
    import base64
    if decode:
    data = base64.decodebytes(bytearray(data, 'ascii'))
    else:
    data = bytearray(data, 'ascii')
    while (len(data) > len(key)):
    key += key
    key = key[:len(data)]
    key = bytearray(key, 'ascii')
    int_data = int.from_bytes(data, byteorder)
    int_key = int.from_bytes(key, byteorder)
    int_enc = int_data ^ int_key
    int_enc = int_enc.to_bytes(len(data), byteorder)
    if encode:
    return base64.encodebytes(int_enc).strip()
    return int_enc



    # extract params:
    if (len(argv) > 1):
    secret = argv[1]
    try:
    token = get_totp_token(xor_crypt_string(
    secret, mangling_string, decode=True))
    except:
    print("Invalid Secret")
    token = '123456' + '%06d' % token
    print(token)
     
     
     
    ## https://github.com/vitorgalvao/custom-alfred-iterm-scripts
  • 相关阅读:
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
    实验二 k-近邻算法及应用
    实验一 感知器及其应用
    实验三 面向对象分析与设计
    实验二 结构化分析与设计
    实验一 软件开发文档与工具的安装与使用
    ATM管理系统
    流程图与活动图的区别与联系
    四则运算2
  • 原文地址:https://www.cnblogs.com/sweetsunnyflower/p/14339847.html
Copyright © 2020-2023  润新知