jsotp一次性密碼生成和驗(yàn)證 JS 模塊
jsotp
`jsotp`是一個(gè)用來(lái)生成用來(lái)生成及驗(yàn)證一次性密碼的js模塊,一次性密碼通常用來(lái)在web應(yīng)用或者其他登錄系統(tǒng)中作為二步驗(yàn)證或多步驗(yàn)證使用。
該模塊基于 [RFC4226](HOTP:基于計(jì)數(shù)器的一次性密碼算法)和 [RFC6238](TOTP:基于時(shí)間的一次性密碼算法)實(shí)現(xiàn)
示例
功能
-
隨機(jī)生成base32加密的字符串
-
將base32加密后的字符串生成otpauth鏈接,可用來(lái)生成二維碼
-
創(chuàng)建可驗(yàn)證的HOTP對(duì)象
-
驗(yàn)證HOTP密碼
-
創(chuàng)建可驗(yàn)證的TOTP對(duì)象
-
驗(yàn)證TOTP密碼
安裝
shell npm install jsotp
模塊
全部模塊支持:
npm install jsotp
使用
基于時(shí)間的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
基于計(jì)數(shù)器的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
生成隨機(jī)base32加密字符串
// import
let jsotp = require('jsotp');
// Generate
let b32_secret = jsotp.Base32.random_gen();評(píng)論
圖片
表情
