基于PyOTP的二次认证方案
Python研究已有一段时间,目前正在着手开发辣椒小鱼的综合管理系统。
不打算设置用户注册功能,因为系统仅供个人使用,不对外开放注册。用户登录包括用户名、密码以及验证码。验证方式有考虑短信、邮箱、TOTP等多种验证方式。但综合考虑,最终选择了TOTP,因为它不仅能与Bitwarden集成,而且免费且简单易用。
OTP的基本原理
- 生成一个共享秘钥作为随机数的种子
- 服务端通过种子计算出当前的密码
- 客户端也通过相同的种子计算出当前的密码
- 验证客户端生成的密码和服务端生成的密码是否匹配
服务端和客户端计算的方式一样:共享密钥 + 时间因子 + 算法 => 密码结果
PyOTP与第三方MFA客户端(例如谷歌验证器的iPhone和Android应用、FreeOTP+等,也可以以Email 和短信来集成结合)相结合,构建了二次OTP认证(Authy)方案。PyOTP提供了生成兼容(兼容MFA客户端)的URIs功能,包括签名的URIs,供第三方MFA客户端生成二次认证密码。通过这一功能应用可以集成PyOTP,形成完整的二次认证方案。生成的URLs可转换成二维码,方便MFA(Multi-Factor Authentication)客户端导入和使用。
pip install pyotp -i https://mirrors.aliyun.com/pypi/simple
核心代码如下:
utils/one_time_password.py
apps/users/forms.py
为什么要设置回复可见~~因为~~~独行侠好难~不想让你们白嫖~~~
THE END
0
二维码
打赏
海报
基于PyOTP的二次认证方案
Python研究已有一段时间,目前正在着手开发辣椒小鱼的综合管理系统。
不打算设置用户注册功能,因为系统仅供个人使用,不对外开放注册。用户登录包括用户名、……
共有 0 条评论