# 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('密钥')

最新文章

  1. 新版汉诺塔(UVa10795 - A Different Task)
  2. HTML文档中头部文件介绍
  3. Delphi下的OpenGL开发入门
  4. min-height最小高度的实现(兼容IE6、IE7、FF)(解决IE6不兼容min-height)
  5. Java GC机制和对象Finalize方法的一点总结
  6. js比量undefined种类
  7. IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
  8. vs2017添加引用时报错未能正确加载“ReferenceManagerPackage”包。
  9. Shiro入门
  10. 【Code clone】Distributed Code Clone Detection Based on Index
  11. 理解Activity.runOnUiThread()
  12. .NET 文件格式相关开源项目
  13. ThymeLeaf的eclipse插件安装
  14. 寄存器理解 及 X86汇编入门
  15. 《STL源码剖析》学习之traits编程
  16. VScode编辑器个性化配置
  17. SpringBoot(七) Working with data: SQL
  18. STM32学习笔记3-IO配置输入输出
  19. [React GraphQL] Pass Parameters to urql's useQuery React Hook
  20. SVN代理设置

热门文章

  1. GitHub上最火的SpringCloud微服务商城系统项目,附全套教程
  2. Vue 生成条形码 jsbarcode的使用
  3. LeetCode198 House Robber(打家劫舍)
  4. 搭建 WordPress 博客教程
  5. Nordic 52840-Timer定时器学习问题(一)
  6. ssh连接:Socket error Event: 32 Error: 10053.
  7. C++ Templates (Part I 基本概念 The Basics)
  8. 进阶6:连接查询 一、sql92标准
  9. 对接接口时,组织参数json出现的问题
  10. mybatis逆向工程介绍