MinaOTP
MinaOTP 是一款用来生成二步验证 token 的小程序,基于 RFC6238 实现,TOTP 算法由javascript实现。
小程序会安全地实时计算动态二步验证 token,token 的增加,编辑,删除也很方便。
小程序码

截图

功能
- 计算二步验证 token
- 扫码添加新的 token
- 手动输入 token 添加
- 编辑服务和帐号备注信息
- 删除已存在的 token
计划
- 备份数据至用户自定义数据库
- 优化进度条
开源
小程序代码已在 Github 上开源。
jsotp
jsotp是一个用来生成用来生成及验证一次性密码的 js 模块,一次性密码通常用来在 web 应用或者其他登录系统中作为二步验证或多步验证使用。
该模块基于 RFC4226 ( HOTP:基于计数器的一次性密码算法)和 RFC6238( TOTP:基于时间的一次性密码算法)实现
示例

功能
- 随机生成 base32 加密的字符串
- 创建可验证的 HOTP 对象
- 验证 HOTP 密码
- 创建可验证的 TOTP 对象
- 验证 TOTP 密码
安装
npm install jsotp
模块
全部模块支持:
let jsotp = require('jsotp');
使用
基于时间的 OTP
// import
let jsotp = require('jsotp');
// Create TOTP object
let totp = jsotp.TOTP('BASE32ENCODEDSECRET');
totp.now(); // => 432143
// Verify for current time
totp.verify(432143); // => true
// Verify after 30s
totp.verify(432143); // => false
基于计数器的 OTP
// import
let jsotp = require('jsotp');
// Create HOTP object
let hotp = jsotp.HOTP('BASE32ENCODEDSECRET');
hotp.at(0); // => 432143
hotp.at(1); // => 231434
hotp.at(2132); // => 242432
// Verify with a counter
hotp.verify(242432, 2132); // => true
hotp.verify(242432, 2133); // => false
生成随机 base32 加密字符串
// import
let jsotp = require('jsotp');
// Generate
let b32_secret = jsotp.Base32.random_gen();