返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实现双因素验证2FA
  • 775
分享到

Python如何实现双因素验证2FA

2023-07-02 15:07:55 775人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇“python如何实现双因素验证2FA”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现双因素验证2FA

这篇“python如何实现双因素验证2FA”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现双因素验证2FA”文章吧。

1.安装

pip 安装,不多说。

pip install pyotp

2.配对

配对就是移动设备和我们的 WEB 服务器配对。

首先,在服务器上使用如下代码生成一次性密钥:

>>> import pyotp>>> pyotp.random_base32()'BZ4TOJD4JWWJWPQBKP23FA55EMHA25Y2'>>>

然后将这个密钥以二维码的形式让手机(移动设备)扫描,扫描之后,手机上的应用就保存了这个密钥。

3.验证

接下来,在手机上就可以使用下面这段逻辑产生动态密码了。

>>> totp = pyotp.TOTP('BZ4TOJD4JWWJWPQBKP23FA55EMHA25Y2')>>> totp.now()'941782'>>>

现在,你有 30 秒的时间将这个 6 位数密码提交到服务器(输入到网页上),服务器服务器也使用同样的密钥和当前时间戳,生成一个动态码,跟用户提交的动态码比对。只要两者不一致,就验证失败,也就是下面这段逻辑,如果超过 30 秒,(当然,30 秒可以自定义),也会失效:

>>> totp = pyotp.TOTP('BZ4TOJD4JWWJWPQBKP23FA55EMHA25Y2')>>> totp.verify('941782')True>>> time.sleep(30)>>> totp.verify('941782')False

除了使用基于时间的动态密码,也可以用基于计数的动态密码,逻辑如下:

hotp = pyotp.HOTP('base32secret3232')hotp.at(0) # => '260182'hotp.at(1) # => '055283'hotp.at(1401) # => '316439'# OTP verified with a counterhotp.verify('316439', 1401) # => Truehotp.verify('316439', 1402) # => False

4.那是不是手机上还有开发个 app

不用,我们直接使用现成的 Google Authenticator 就可以了。

如果你已安装了 Google Authenticator,请点击 :heavy_plus_sign: 添加密钥,然后扫描下发的二维码,就可以生成动态码:

Python如何实现双因素验证2FA

然后你可以执行下面这段代码,就可以发现 pyotp 产生的动态码和 Google Authenticator 产生的是一致的:

import pyotptotp = pyotp.TOTP("JBSWY3DPEHPK3PXP")print("Current OTP:", totp.now())

其实二维码的信息就是 JBSWY3DPEHPK3PXP。

这样,我们用 Google Authenticator 来产生动态密码,网站上进行二次验证,就可以实现 2FA 了。

以上就是关于“Python如何实现双因素验证2FA”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: Python如何实现双因素验证2FA

本文链接: https://lsjlt.com/news/342955.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python如何实现双因素验证2FA
    这篇“Python如何实现双因素验证2FA”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现双因素验证2FA...
    99+
    2023-07-02
  • Python实现双因素验证2FA的示例代码
    目录介绍1.安装2.配对3.验证4.那是不是手机上还有开发个 app知识点补充介绍 传统的用户名密码方式,容易泄漏,并不安全。 你说,加上短信验证码不就安全了,其实短信验证码也是不安...
    99+
    2024-04-02
  • 怎么给wordpress添加双因素身份验证
    本篇内容介绍了“怎么给wordpress添加双因素身份验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  不管你是使用 WordPress...
    99+
    2023-06-25
  • 如何使用Python实现极验验证码识别验证码
    这篇“如何使用Python实现极验验证码识别验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python实现极验...
    99+
    2023-07-05
  • 如何使用双因素身份验证保护CentOS服务器的访问安全
    要在CentOS服务器上使用双因素身份验证来保护访问安全,可以按照以下步骤进行操作:1. 安装所需软件:   - 在服务器...
    99+
    2023-10-10
    CentOS
  • 如何实现VBScript验证
    本篇内容介绍了“如何实现VBScript验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单验证使用 Visual Basic Scrip...
    99+
    2023-06-09
  • python如何实现三次密码验证
    小编给大家分享一下python如何实现三次密码验证,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化...
    99+
    2023-06-14
  • Ajax+Struts2如何实现验证码验证功能
    这篇文章主要为大家展示了“Ajax+Struts2如何实现验证码验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax+Struts2如何实现验证码验证...
    99+
    2024-04-02
  • angular如何实现form验证
    这篇文章主要为大家展示了“angular如何实现form验证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angular如何实现form验证”这篇文章吧。先上效...
    99+
    2024-04-02
  • PHP如何实现HTTP验证
    目录HTTP BasicHTTP Digest总结在日常开发中,我们进行用户登录的时候,大部分情况下都会使用 session 来保存用户登录信息,并以此为依据判断用户是否已登录。但其...
    99+
    2024-04-02
  • vue如何实现验证码
    这篇文章主要讲解了“vue如何实现验证码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现验证码”吧!vue实现验证码的方法:1、创建js组件;2、引入组件;3、定义验证对象;4、...
    99+
    2023-06-25
  • Flex验证组件如何实现Flex验证处理
    本篇文章为大家展示了Flex验证组件如何实现Flex验证处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。验证失败时需要做错误的提示及处理,修改错误提示的方法是修改Flex验证组件中相应的错误类型属...
    99+
    2023-06-17
  • 如何理解HTTPS以及SSL单向验证和双向验证
    本篇文章给大家分享的是有关如何理解HTTPS以及SSL单向验证和双向验证,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 主要介绍HTTPS以及SSL单向验证和双向验证...
    99+
    2023-06-17
  • Python如何实现生成验证码的功能
    这篇文章主要介绍“Python如何实现生成验证码的功能”,在日常操作中,相信很多人在Python如何实现生成验证码的功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现生成验证码的功能”的疑...
    99+
    2023-06-02
  • layui如何实现表单验证
    这篇文章主要介绍layui如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在网上看到很多validform和layer配合的验证方式,但是觉得写的不好,不清不楚的,于是...
    99+
    2024-04-02
  • html5如何实现表单验证
    这篇文章主要介绍html5如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义。就其核心而言,表单验证是一套系统,...
    99+
    2024-04-02
  • jQuery如何实现表单验证
    这篇文章主要为大家展示了“jQuery如何实现表单验证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现表单验证”这篇文章吧。具体代码如下所示:...
    99+
    2024-04-02
  • 如何实现JS表单验证
    这篇文章主要介绍了如何实现JS表单验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先晒图index.html<!DOCTYPE&nb...
    99+
    2024-04-02
  • jquery如何实现验证数字
    本篇内容主要讲解“jquery如何实现验证数字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何实现验证数字”吧! 方法...
    99+
    2024-04-02
  • canvas如何实现滑动验证
    小编给大家分享一下canvas如何实现滑动验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!突然想到的方法,来试试吧页面布局<canvas id=...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作