吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1434|回复: 6
收起左侧

[Python 原创] 【原创】基于时间认证的算法,用于两步验证

[复制链接]
tp522022 发表于 2023-9-14 14:05
出于安全性的考虑 现在有很多网站要求启用2FA(两步认证),例如Github,某个不能透露的网站等等。常见的方式是启用两步验证时网站提供一个验证码,说让你用支持TOTP的App如Google Authenticator等扫描二维码,然后生成一个Code填入进行验证。启用TOTP的两步验证后进行敏感性操作如修改邮箱,修改密码等时会额外要求输入效验码,此限制可有效避免密码泄露时造成更大的损失。
以下是一段基于Python原生库生成TOTP效验码的脚本

[Python] 纯文本查看 复制代码
import hmac, base64, struct, hashlib, time



def get_hotp_token(secret, intervals_no):
    key = base64.b32decode(secret, True)
    # decoding our key
    msg = struct.pack(">Q", intervals_no)
    # conversions between Python values and C structs represente
    h = hmac.new(key, msg, hashlib.sha1).digest()
    o = h[19] & 15
    # Generate a hash using both of these. Hashing algorithm is HMAC
    h = (struct.unpack(">I", h[o:o + 4])[0] & 0x7fffffff) % 1000000
    # unpacking
    return h


def get_totp_token(secret):
    # ensuring to give the same otp for 30 seconds
    x = str(get_hotp_token(secret, intervals_no=int(time.time()) // 30))
    # adding 0 in the beginning till OTP has 6 digits
    while len(x) != 6:
        x += '0'
    return x


def exec():
    print(get_totp_token('VRRWFDP6VWJOKBBB'))
    pass

免费评分

参与人数 1吾爱币 +1 收起 理由
潇洒超人 + 1 不明觉厉

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lzspain 发表于 2023-9-14 14:10
1024:勿cue
肆懿 发表于 2023-9-14 15:01
njit_77 发表于 2023-9-14 15:03
 楼主| tp522022 发表于 2023-9-14 15:06
肆懿 发表于 2023-9-14 15:01
已经上不了了吧,好多年没上了找不到回家的路了

  哈哈哈哈 那不是通天大道吗 一路畅通
lzspain 发表于 2023-9-14 16:00
肆懿 发表于 2023-9-14 15:01
已经上不了了吧,好多年没上了找不到回家的路了

说明你不是合格的老司机,我都上岸了
ztqddj007 发表于 2023-9-17 13:33
支持一波
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表