python根据密钥得到谷歌两步验证动态验证码
2024-09-03 04:27:44
# coding=utf-8 import time
import base64
import sys
import hashlib
import hmac
import struct def google_code(secret_key):
key = base64.b32decode(secret_key)
msg = struct.pack(">Q", int(time.time()) // 30)
code = hmac.new(key, msg, hashlib.sha1).digest() # 版本判断
if sys.version_info > (2, 7):
o = code[19] & 15
else:
o = ord(code[19]) & 15
code = str((struct.unpack(">I", code[o:o + 4])[0] & 0x7fffffff) % 1000000) # 如果第一位是0,则不会显示,判断若是5位码,就在第一位补上0
if len(code) == 5:
code = '' + code
print(code)
return code google_code('密钥')
最新文章
- 新版汉诺塔(UVa10795 - A Different Task)
- HTML文档中头部文件介绍
- Delphi下的OpenGL开发入门
- min-height最小高度的实现(兼容IE6、IE7、FF)(解决IE6不兼容min-height)
- Java GC机制和对象Finalize方法的一点总结
- js比量undefined种类
- IE8";开发人员工具";使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
- vs2017添加引用时报错未能正确加载“ReferenceManagerPackage”包。
- Shiro入门
- 【Code clone】Distributed Code Clone Detection Based on Index
- 理解Activity.runOnUiThread()
- .NET 文件格式相关开源项目
- ThymeLeaf的eclipse插件安装
- 寄存器理解 及 X86汇编入门
- 《STL源码剖析》学习之traits编程
- VScode编辑器个性化配置
- SpringBoot(七) Working with data: SQL
- STM32学习笔记3-IO配置输入输出
- [React GraphQL] Pass Parameters to urql's useQuery React Hook
- SVN代理设置
热门文章
- GitHub上最火的SpringCloud微服务商城系统项目,附全套教程
- Vue 生成条形码 jsbarcode的使用
- LeetCode198 House Robber(打家劫舍)
- 搭建 WordPress 博客教程
- Nordic 52840-Timer定时器学习问题(一)
- ssh连接:Socket error Event: 32 Error: 10053.
- C++ Templates (Part I 基本概念 The Basics)
- 进阶6:连接查询 一、sql92标准
- 对接接口时,组织参数json出现的问题
- mybatis逆向工程介绍