#!/usr/bin/env python
# -*- coding:utf-8 -*- import hmac, base64, struct, hashlib, time
def calGoogleCode(secretKey):
""" :param secretKey: 16个字符
:return:
"""
input_time = int(time.time())//30 key = base64.b32decode(secretKey)
msg = struct.pack(">Q", input_time)
googleCode = hmac.new(key, msg, hashlib.sha1).digest()
o = ord(str(googleCode)[19]) & 15
googleCode = str((struct.unpack(">I", googleCode[o:o+4])[0] & 0x7fffffff) % 1000000)
if len(googleCode) == 5: # 如果验证码的第一位是0,则不会显示。此处判断若是5位码,则在第一位补上0
googleCode = '' + googleCode
return googleCode print(calGoogleCode('EKPHIPYDEN7RAAAB'))

最新文章

  1. .net WebApi开发
  2. 在Ubuntu下使用 csapp.h 和 csapp.c
  3. CSS3中-webkit-overflow-scrolling: touch 的使用方法详解
  4. Windows的bat脚本中for循环
  5. 地图和定位 、 iCloud
  6. MySql 查询一周内最近7天记录
  7. web-ylbtech-数据库备份-数据库设计
  8. Poj OpenJudge 百练 1062 昂贵的聘礼
  9. 响应式布局中重要的meta标签设置.适用于手机浏览器兼容性设置
  10. 【Linux】环境变量设置
  11. 不同版本(2.3,2.4,2.5) web.xml 的web-app头信息
  12. CodeForces 660A Co-prime Array
  13. openFace 人脸识别框架测试
  14. HDU 1711 Number Sequence(字符串匹配)
  15. __x__(19)0907第四天__ HTML5 文本标签 及 样式
  16. 977. Squares of a Sorted Array有序数组的平方
  17. mysql--SQL编程(关于mysql中的日期,实例,判断生日是否为闰年) 学习笔记2.1
  18. golang 打印变量类型
  19. URAL 1877 Bicycle Codes
  20. 一些laravel博文

热门文章

  1. MySQL 事件跟踪器
  2. 提高C++程序运行效率的10个简单方法
  3. bzoj1008
  4. 《Python》 文件操作
  5. Python 常用扩展库(八)
  6. DevExpress v17.2新版亮点—WPF篇(七)
  7. 把腾讯云的ubuntu16.04升级到18.04
  8. 用js取1-100的随机数
  9. OO面向对象 课程总结
  10. [LeetCode&Python] Problem 590. N-ary Tree Postorder Traversal