位置: 编程技术 - 正文

php集成动态口令认证(php动态语言)

编辑:rootadmin

推荐整理分享php集成动态口令认证(php动态语言),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php动态函数,php动态函数,php动态语言,php集成动态口令是什么,php动态语言,php集成动态口令怎么用,php集成动态口令怎么用,php集成动态口令怎么用,内容如对您有帮助,希望把文章链接给更多的朋友!

大多数系统目前均使用的静态密码进行身份认证登录,但由于静态密码容易被窃取,其安全性无法满足安全要求。

动态口令采用一次一密、用过密码作废的方式防止了密码被窃取带来的安全问题。 动态口令分为HOTP(基于事件计数的动态口令,RFC)、TOTP(基于时间计数的动态口令,RFC)、OCRA(挑战应答式动态口令,RFC)等方式。

本文介绍了集成TOTP方式的动态口令认证的方案,PHP框架采用Thinkphp3.2.3,动态口令生成器使用的是google authtication。

1、为Thinkphp框架添加oath算法类

oath算法封装类oath.php代码如下:

由于google的动态口令算法中种子密钥使用了base编码,因此需要base算法,base.php内容如下:

将这两个文件放到Thinkphp框架的ThinkPHPLibraryVendoroath目录下,oath目录是自己创建的。

2、添加数据库字段

用户表添加如下字段: auth_type(0-静态密码,1-动态口令) seed(种子密钥) temp_seed(临时种子密钥) last_logintime(上次登录成功时间) last_otp(上次使用密码) 其中auth_type是为了标明用户使用的哪种认证方式,seed为用户的种子密钥,temp_seed为用户未开通前临时保存的一个种子密钥,如果用户开通动态口令认证成功,该字段内容会填到seed字段。last_logintime和last_otp为上次认证成功的时间和动态口令,用于避免用户同一个口令重复使用。

3、代码集成

php集成动态口令认证(php动态语言)

1)、开通动态口令

在原有系统的修改密码页面,加上认证方式的选择,例如:

如果用户选择动态口令方式,则会生成一张二维码显示在页面,用于用户开通动态口令。为了兼容google authtication,其二维码格式与谷歌一样。生成二维码的方法见我的另一篇《Thinkphp3.2.3整合phpqrcode生成带logo的二维码》 。 生成密钥二维码代码如下:

random是生成随机字符串函数。$rand=str_replace('=','',$rand)这句代码是因为谷歌手机令牌中base解码算法并没有填充的‘='号。

验证用户动态口令的代码如下:

2)、动态口令登录

用户动态口令登录验证的代码:

从数据库读取auth_type,seed,last_otp字段。

4、测试验证

下载google authtication,使用静态密码登录系统,进入修改密码页面。 打开google authtication,扫描二维码,会显示动态口令。

保存内容,开通动态口令成功! 然后你就可以用高大上的动态口令登录系统了!

标签: php动态语言

本文链接地址:https://www.jiuchutong.com/biancheng/301313.html 转载请保留说明!

上一篇:微信随机生成红包金额算法php版(微信随机红包表情包怎么弄)

下一篇:微信红包随机生成算法php版(微信红包的随机性)

  • 个税专项扣除能中途新增
  • 企业用于职工的个人住房是否可以不缴纳房产税?
  • 预缴增值税需要预缴附加税吗
  • 法人资格证书是营业执照吗
  • 金税三期账号是自己申请吗
  • 企业股权转让影响利润吗
  • 生产车间用电产品有哪些
  • 营改增后商场进场费如何缴税?
  • 贴现利息的计算题
  • 无形资产内部研究开发支出的确认和计量
  • 固定资产赔偿制度
  • 滞留票的原因是什么?
  • 增值税发票开户行填简称是被允许的吗?
  • 增值税预交款怎么算
  • 税务局拍卖资产
  • 营业额500万以上税率
  • 公司发生的费用需要交税吗
  • 行政单位库存物资管理办法
  • 买二手设备需要注意的事项
  • 加盟费是一年一收还是终身的
  • 换汇成本怎么计算
  • 差额征税的计算方式
  • 苹果哪些手机有120hz刷新率
  • mac电脑怎么转移到另一个电脑
  • win10通知怎么打开
  • PHP:xml_parser_create_ns()的用法_XML解析器函数
  • PHP:pg_lo_seek()的用法_PostgreSQL函数
  • windows7如何制表
  • 建造一座污水处理池投资了45万元
  • 新办企业工商需要什么手续
  • arcore如何使用
  • php提供的字符串函数
  • 帝国cms建站实例教程
  • 小规模免增值税政策从什么时候开始
  • 研发费用的范围和加计扣除比例
  • 红字发票信息表编号
  • 开发商需要缴纳保证金
  • 织梦使用手册
  • 一般纳税人和小规模公司怎么区分
  • 应交税费应交增值税销项税额
  • 一次性医疗补助金怎么计算
  • 捐赠 赞助 区别
  • 事业单位利息收入的正确分录
  • 财务费用减少记借方还是贷方
  • 费用减少利润减少的情况
  • 在建工程抵押贷款的用途为在建工程继续建造所需资金
  • 库存商品怎么做表格
  • 金税盘是怎样的
  • 建筑劳务没有合同能起诉吗
  • 银行账户是不是卡号
  • 外汇申报要在几天之内
  • 残疾人就业保障金征收使用管理办法
  • 购进销售产品的会计分录
  • 托收承付是什么科目
  • sql server如何
  • sql server服务器模式
  • mysql5.0使用教程
  • windows7无法进入睡眠
  • 联想昭阳k41笔记本
  • centos7.6和7.7
  • Win8.1怎么打开无线网卡
  • jusched.exe是什么进程
  • 电脑win8.1系统怎么样
  • cocos lua js
  • unity3ds
  • JavaScript的函数库
  • excel 级联
  • exit(1)和return的区别
  • perl -i -pe
  • cocos2dx quick lua 学习笔记1
  • cocos2dx 3.3 quick lua 实现返回键退出程序
  • css文本框怎么对齐
  • node.js介绍
  • android 实例教程
  • jquery聚焦输入框
  • 广东省地方税务局历任局长
  • 广东省广州市国家安全局
  • 跨境电商出口商品结构
  • 北京税务局网站官网
  • 税务会计业务处理流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设