首页 > 编程语言 >关于AWS-阿里-堡垒机Console界面-登录-多因子MFA-认证的动态口令生成的python实现

关于AWS-阿里-堡垒机Console界面-登录-多因子MFA-认证的动态口令生成的python实现

时间:2023-07-15 12:34:47浏览次数:52  
标签:MFA Console python AWS 认证 多因子 root TextList

对于很多公司来说、都会要求在登录云平台,如AWS云,阿里云,或者堡垒机Console ,甚至操作系统时,都会要求登录时,进行二次认证

也即是多因素,多因子,MFA认证,关于多因素认证、一般有短信验证码,软件生成code,或者邮件接收Code,都可以实现

今天笔者主要讲述,如何通过python代码进行实现,AWS,阿里云、或者常用的堡垒机Console界面的二次MFA认证实现

核心是使用的OTP(One-Time Password,一次性密码),它是一种基于时间同步算法(TOTP)的二次验证方式,从密码学算法的角度来说属于单向

先看看笔者python作品的界面如下,每一秒刷新一次(当然实际Code值的变化周期一般为30秒),点击右侧的Copy按钮可以进行前面动态口令的复制

Ptyhon代码核心如下,包括其算法生成及Copy到系统粘贴板:

for i in range(AccountNumber):

    LabelList[i]=tkinter.Label(root,text=AccountInformation[i][0])
    LabelList[i].grid(row=i,column=0,padx=10,pady=3)
    
    TextList[i]=tkinter.Text(root,width=30,height=1)
    TextList[i].grid(row=i,column=1,padx=1,pady=3)
    
    ButtonList[i]=tkinter.Button(root, text="Copy",command=functools.partial(TextContentCopy,root,TextList[i]),width=15,height=1)
    ButtonList[i].grid(row=i,column=2,padx=10,pady=3)


def confirm():

    for i in range(AccountNumber):
        TkinterTextDelete(TextList[i])
        TextList[i].insert("0.0",pyotp.TOTP(AccountInformation[i][1]).now())
   
    root.after(1000,confirm)

要生成动态口令,我们只需要准备好相应的二维码,将其转换成字符密钥,或者直接使用密钥都是可以的~ 

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17555938.html

 

标签:MFA,Console,python,AWS,认证,多因子,root,TextList
From: https://www.cnblogs.com/5201351/p/17555938.html

相关文章

  • js 根据时间,输出几分钟前,几小时前,几天前,几个月前,几年前。 console.log(getDateDiff("
    js根据时间,输出几分钟前,几小时前,几天前,几个月前,几年前。原文链接:https://blog.csdn.net/qq_42740797/article/details/111277824代码1://时间戳转多少分钟之前functiongetDateDiff(dateTimeStamp){//时间字符串转时间戳vartimestamp=newDate(dateTimeStamp).g......
  • 使用 INFINI Console 实现 Elasticsearch 的增量数据迁移
    功能介绍#在INFINIConsole1.3.0版本里,数据迁移功能增加了对增量迁移的支持。这篇文章将会介绍增量迁移的具体使用方法和实现原理。场景介绍#以常见的日志场景为例,假设A集群有一个用来记录线上HTTP请求记录的索引request-logs,数据结构如下:{"request_body":{...},......
  • 在html中使用vConsole
    在vue中可以自行安装vConsole,那么移动端怎么办呢<scriptsrc="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"></script><script>varvConsole=newVConsole();console.log('Helloworld');</script......
  • 前端必须知道的手机调试工具vConsole
    在日常业务中我相信大家多多少少都有移动端的项目,移动端的项目需要真机调试的很多东西看不到调试起来也比较麻烦,今天给大家分享一个我认为比较好用的调试第三方库VConsole,有了这个库咱们就在手机上看控制台了,VConsole有两种引用方式,使用方法也很简单方法一:在public目录下index.ht......
  • [C#] 使用 ReadConsoleInput 所需要注意的问题.
    如果要使用鼠标输入,那么需要:启用鼠标输入,只有启用之后,才能接收到鼠标事件关闭控制台的快速编辑模式,很多人的控制台都启用了快速编辑模式,它会导致鼠标输入无效任何情况下,都需要:不使用除ReadConsoleInput之外的任何输入方法,因为它们会和你争抢ReadConsoleInput的......
  • nextjs项目引入vconsole报错处理:ReferenceError: window is not defined
    引入文件(nextjs项目):importVconsolefrom'vconsole'报错: 处理:letVconsoleif(typeofwindow!=='undefined'){Vconsole=require('vconsole')}打开调试:if(typeofwindow!=='undefined'){//加了一个打开调试......
  • console.log 弊端-数组有值但是打印出来空值
    情况:数组有对象但是length为0原因:该数组原本有值,但是被数组操作api改变了数组,打印出来的值是已经被操作的数组 ......
  • Scanner与Console
    代码示例importjava.io.Console;importjava.util.Scanner;publicclassDemo{ @SuppressWarnings("resource") publicstaticvoidmain(String[]args){ Scannerscanner=newScanner(System.in); System.out.println("susername:"); St......
  • console.trace()
       console.trace(): 追踪函数的调用轨迹functionad(a,b){console.trace();returna+b;}   更多参考:    http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html......
  • 偏爱console.log的你,肯定会觉得这个插件泰裤辣!
    pnpmaddbabel-plugin-enhance-log-D#oryarnaddbabel-plugin-enhance-log-D#ornpmibabel-plugin-enhance-log-D然后在你的babel.config.js里面添加插件module.exports={presets:['@vue/app'],plugins:['enhance-log']......