博客园  :: 首页  :: 管理

对于很多公司来说、都会要求在登录云平台,如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