2025年6月

多因素认证(MFA)动态令牌PHP实现

两步验证(Two-Factor Authentication,2FA)是一种增加账户安全性的方式,它要求用户提供两种不同类型的身份验证凭据才能访问服务或数据。这种核心思想建立在“知道”和“拥有”两种安全因素上:一种是用户知道的信息(如密码或PIN码),另一种是用户拥有的物理设备(如手机或安全令牌)。这样,即使攻击者窃取了用户的密码,没有物理设备也无法完成认证过程。

多因素认证(MFA)的实现主要包含以下几个核心环节和技术要点,其流程设计兼顾安全性与用户体验:

一、核心实现流程

MFA 实现需平衡安全性与易用性,生物识别虽便捷但需考虑隐私合规(如 GDPR 生物数据特殊保护)。

密钥初始化与绑定‌

  • 用户启用 MFA 时,系统生成唯一密钥(如 Base32 编码字符串),并通过加密 QR 码展示给用户扫描绑定认证器(如 Google Authenticator、Authy)。
  • 密钥安全存储于服务器端,并与用户账号关联。

- 阅读剩余部分 -

js变量间赋值,修改变量值后原变量随之改变问题

vue项目的开发过程中,需要多次用到一份基础数据,为减少代码量,提高一下复用效果,便用变量A来定义,在项目中需要用到时就用变量A进行赋值。在项目中调用时,新定义一个变量B,再将变量A赋值给变量B,即B=A;
期望的效果是,赋值之后,A和B是两份数据,对变量B进行操作时不影响变量A。

B=A的方式只是将B指向A的存储地址,实际上只有同一份数据,因此无论修改A还是B都是会互相影响的。

解决方法:
B = JSON.parse(JSON.stringify(A))