技术标签: python调用crt自动登录
简介
用于解决 Google Authenticator 的两步验证登录。涉及到密码,不建议脚本保存到公共环境。
安装oathtool
Mac
$ brew install oath-toolkit
Linux
$ yum install oathtool
Windows
http://rubli.info/t-blog/2011/09/03/generating-oath-otps-on-windows-with-oathtool/
脚本示例
这里引用的是totp算法
#$language = "Python"
#$interface = "1.0"
import subprocess
OATHTOOL = "你的oathtool路径"
TOTP_CACHE_PATH = "/tmp/totp.txt"
TOTP_KEY = "你的GoogleOauthKey"
PASSWORD = "你的密码"
def totp(key):
totp = subprocess.check_output([OATHTOOL, "--totp", "-b", "-d", "6", TOTP_KEY]).rstrip()
return totp
def Main():
tab = crt.GetScriptTab()
if tab.Session.Connected != True:
crt.Dialog.MessageBox("Session Not Connected")
return
tab.Screen.Synchronous = True
tab.Screen.WaitForStrings(['Verification code:'])
vc = totp(TOTP_KEY)
tab.Screen.Send("{vc}\r\n".format(vc=vc))
tab.Screen.WaitForStrings(['Password:'])
tab.Screen.Send("{pwd}\r\n".format(pwd=PASSWORD))
return
Main()
参考:
http://www.dannysite.com/blog/165/
hexdump命令是Linux下的打印16进制的利器,它可以按我们指定的格式输出16进制,特别有用,配合eeprom来用简直是绝配。今天我们来介绍一个hexdump命令的使用:首先我们准备一个测试用的文件test,十六进制如下:[plain] view plaincopyprint?00 01 02 03 04 05 06 07
菜单栏是一个网站颜值的重要组成部分,今天一起来体验下Dcat-Admin框架的两种布局和三种颜色风格。一、菜单栏的两种布局1、左侧纵向 菜单栏布局Dcat-Admin框架默认为[左侧纵向]菜单栏(2)配置admin=>layout=>horizontal_menu,为true. 'layout' => [ 'color' => 'default', 'body_class' => [], 'h...
print('-' * 40)print("欢迎使用学生通讯管理系统v1.0")print("[1] 增加学员信息")print("[2] 删除学员信息")print("[3] 打印学员信息")print("[4] 退出系统")print('-' * 40)students = []while True: n = int(input("请选择功能编号[1 - 4]:")) if n == 1: code = input("请输入学员学号:") .
文档说明 对于每日10TB+的数据增量,应该选择什么样的离线分析引擎,才能既高效,有低成本? 追求性能极限的同时,也需要兼顾向后扩展性,比如人才招聘,运维成本,部署成本,分析场景变化等,那么如何才能选择最适合自己的离线分析引擎呢? 本文从自身需求的视角出发,综合对比目前主流的开源离线分析方案,以寻找最合适的离线分析方案,来满足自己的需求。 对于目前较为主流的druid,clickhouse,kylin,KAWQ,presto,spark sql,impala进行了多方面的评比,仔细分析,以寻
第2章 2.0 敏捷与精益开发简介敏捷哲学中有重要的一条:天下无难事,只怕多练习;熟能生巧,则可化难为易。第一代软件开发方法多被描述成“瀑布式”或“传统式”方法。这些方法会假设整个软件开发过程可以划分为一系列界限明晰、方向明确、可重复进行的任务模块,因此这样的软件开发过程通常都是计划推动式的顺序式过程。但是过往经验证明,事实并非如此。与其他工业生产过程...
近年的Web开发,很多接口数据交换通常倾向于使用json格式作为数据源,相对WebService来说,json有轻量,容易使用在Ajax程序和移动App中的优点。但是最近在开发一个对安全性要求相对较高的应用时,第三方的接口是基于https的WebService,并要求对提交的数据进行签名。对方使用的是java,一开始我想直接就使用java来开发这个功能,但后来考虑到这个应用接下来可能会跟不同的第三
定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为宏使用时的参数。输出已交换后的两个值首先需要理解的是宏是如何定义的,然后按照要求完成宏的处理#include<stdio.h>#define swap(a,b) {t=a;a=b;b=t;}//宏定义,交换 int main(){ int a,b,t; printf("输入两个数:\n"); scanf(...
按照网上的配置,日志存储在本项目下,可以使用各种lookup,我按照网上的配置,包括官方链接都试过点击打开链接但是总是报错,找不到路径,直勾勾的就把${web:rootDir}扔到注释里了,说明没有解析,网上看了好多的说明,都是这么写,感觉实在不知道问题出在哪,后来看到 org.apache.logging.log4j.web.Log4jServletContextListen
总结 这是我自己整理的学习笔记,主要用于自我复习。如果有大佬也看到了这个并且发现了谬误,欢迎email me at [email protected]。
http://acm.uestc.edu.cn/#/problem/show/86 弱校联萌的题,比赛时没出,赛后看了题解补的。 题目大意是有多堆宝物,每堆价值为2^ai个数为xi,输出把所有宝物分成两堆价值差的最小值的二进制表示。 进行预处理,类似于二进制运算,从价值最小宝物开始进位,同时标记当前位是否被进位过,被进位过的那一位不管最后值是多少总是可以均分的。然后把最高位不能均分的宝物作为一
2.1. 浮点对象浮点对象是“定长对象”。2.1.1. Python中的创建Python中浮点对象创建最重要的方法为PyFloat_FromDouble,如下Python语句最终会调用到PyFloat_FromDouble:a = 1.23b = float(1.234)2.1.2. PyFloat_FromDouble的C调...
多态的转型分为向上转型和向下转型两种向上转型多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。当父类引用指向一个子类对象时,便是向上转型。使用格式: 父类类型 变量名 = new 子类类型(); 如:Animal a = new Cat();向下转型父类类型向子类类型向下转换的过程,这个过程是强制的一个已经向上转型的子类类型,将父类引用转为子类引用,便是向下转型...