国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【TOTP】TOTP算法(基于時間的一次性動態(tài)密碼)原理介紹 & 簡要邏輯實現(xiàn)說明

這篇具有很好參考價值的文章主要介紹了【TOTP】TOTP算法(基于時間的一次性動態(tài)密碼)原理介紹 & 簡要邏輯實現(xiàn)說明。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是TOTP(Time-base One-Time Password)?

Time-base One-Time Password翻譯過來是基于時間的一次性密碼。這里以QQ令牌為例,解釋下TOTP。

  • 首先,當用戶首次使用QQ令牌時,服務器會向用戶的手機APP上頒發(fā)一個證書/秘鑰(這里理解為一個長的字符串,設為變量:secret,頒發(fā)時間[unix時間戳]記為:createTimestamp),單個臨時密碼的有效期為30s。
  • 手機APP生成臨時密碼,記當前手機unix時間戳為:appCurrTimestamp,生成規(guī)則為:
//當前步數,30秒為一步
var userId = xx;
var step = (appCurrTimestamp - createTimestamp)/(30*1000);
//生成一個六位密碼(這里生成密碼的方法大家自己定義,保證安全性就行,核心邏輯是上一步計算步數,保證相同步數生成的密碼相同即可)
var tempPass = substr(sha256(userId + secret + step),6);
  • 手機APP將密碼發(fā)送到服務端驗證,記服務端當前時間為:serverCurrTimestamp
//當前用戶ID
var currUserId = xx;
//根據當前用戶ID查詢用戶秘鑰
var currUserSecret = querySecretByUserId(currUserId);
var step = (serverCurrTimestamp - createTimestamp)/(30*1000);
//生成密碼(這里生成密碼的方法大家自己定義,保證安全性就行,核心邏輯是上一步計算步數,保證相同步數生成的密碼相同)
var serverTempPass =  substr(sha256(currUserId + currUserSecret + step),6);
  • 最后驗證手機端的生成的臨時密碼和server端生成的是否相同即可。

邊界情況如何處理?

服務器和手機的時間可能存在時間差(還有網絡延遲造成的時間差),為了彌補時間差造成的步數不一致的問題,一般會向前和向后多算一步,只要這三步有一步是符合條件的,則符合條件。文章來源地址http://www.zghlxwxcb.cn/news/detail-686294.html

到了這里,關于【TOTP】TOTP算法(基于時間的一次性動態(tài)密碼)原理介紹 & 簡要邏輯實現(xiàn)說明的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • PostMan傳時間參數&一次性發(fā)送多次請求

    PostMan傳時間參數&一次性發(fā)送多次請求

    request body: { “id”: “demoData”, “date”: “{{date}}” // “timeStamp”: “{{timeStamp}}” } Pre-request Script: Datel類型 postman.setGlobalVariable(“date”, Date.parse(new Date())) 或 postman.setGlobalVariable(“date”, Date.parse(new Date(“2023-09-07”))) TimeStamp類型 timeStamp=Math.round(new Date().getTime()); postman.setGl

    2024年02月08日
    瀏覽(26)
  • 基于小程序的一次性環(huán)保餐具銷售系統(tǒng)+springboot+vue.js附帶文章和源代碼設計說明文檔ppt

    基于小程序的一次性環(huán)保餐具銷售系統(tǒng)+springboot+vue.js附帶文章和源代碼設計說明文檔ppt

    ?? 博主介紹 :?CSDN特邀作者、985計算機專業(yè)畢業(yè)、某互聯(lián)網大廠高級全棧開發(fā)程序員、碼云/掘金/華為云/阿里云/InfoQ/StackOverflow/github等平臺優(yōu)質作者、專注于Java、小程序、前端、python等技術領域和畢業(yè)項目實戰(zhàn),以及程序定制化開發(fā)、全棧講解、就業(yè)輔導、面試輔導、簡

    2024年02月20日
    瀏覽(87)
  • python 一次性刪除列表(list)的空白元素(空內容) 或者 一次性刪除列表(list)中的指定元素

    看看下述代碼: 輸出: 當你遇見這種情況,有哪些方法來去除里面的空內容呢(即 \\\'\\\' )? 1.1 刪除空內容(方法一) : 輸出: 1.2 刪除空內容(方法二) : 需要 配合 lambda 表達式 一起使用! 輸出: 2.3 刪除指定內容 : 輸出: 注 :此方法既可以刪除空元素,也可以刪除指

    2024年02月03日
    瀏覽(304)
  • 《一次性分割一切》閱讀筆記

    《一次性分割一切》閱讀筆記

    目錄 0 體驗 1 摘要 2 十個問題 參考文獻 體驗地址 :SEEM - a Hugging Face Space by xdecoder 體驗結果 : 將哈士奇和汽車人從圖片中分割出來。 盡管對于交互式人工智能系統(tǒng)的需求不斷增長,但在視覺理解(例如分割)中的人工智能交互方面,很少有全面的研究。本文受到基于提示的

    2024年02月01日
    瀏覽(170)
  • 公眾號一次性訂閱消息

    公眾號一次性訂閱消息

    洛塔服務號回復007獲取代碼。 之前發(fā)布通知,要用訂閱通知替代一次性訂閱消息,不知道是被罵的太慘還是技術原因,一次性訂閱消息還是一直能用。 和模板消息不同的是,一次性訂閱消息無需用戶關注公眾號,但是必須用戶點擊同意發(fā)送才能接收消息。 模板消息:需要關

    2024年02月09日
    瀏覽(90)
  • Python:一次性輸出多個量

    有的時候我們在輸入一個字符串時,需要在中間加一個int類型變量時,如果一段一段輸出就要寫三個print,非常麻煩。今天bug君就給大家講講如何在Python里一次性輸出多個量。 粽所粥汁,在Python里輸出需要寫 print(\\\"輸出內容\\\") ,而輸出一個變量則需要寫 print(變量名) 。 注意:

    2024年02月04日
    瀏覽(99)
  • 一次性打包學透 Spring

    一次性打包學透 Spring

    不知從何時開始,Spring 這個詞開始頻繁地出現(xiàn)在 Java 服務端開發(fā)者的日常工作中,很多 Java 開發(fā)者從工作的第一天開始就在使用 Spring Framework,甚至有人調侃“不會 Spring 都不好意思自稱是個 Java 開發(fā)者”。 之所以出現(xiàn)這種局面,源于 Spring 是一個極為優(yōu)秀的一站式集成框架

    2023年04月19日
    瀏覽(102)
  • 如何一次性啟動多個SpringBoot項目

    如何一次性啟動多個SpringBoot項目

    在做微服務這塊的架構設計的時候,當微服務數量越來越多的時候,本地啟動各個服務的時候,可能得手動啟動每個啟動類。這樣就很麻煩,因此記錄一下如何在 idea 里面一鍵啟動所有的項目。 比如我項目里面有5個微服務:那么就對應了5個啟動類。 1.項目右上角編輯: 2.點

    2024年02月16日
    瀏覽(231)
  • charles證書安裝,一次性說明白

    charles證書安裝,一次性說明白

    windows上安裝好charles后,需要給軟件安裝證書。 1、點擊help - SSL proxying,選擇第二個install Charles Root Certificate證書安裝 ? 2、如果以前安裝過證書,但是過期了(有效期一般1年),證書界面會顯示過期字樣,此時就要先點擊一下Reset Charles Root Certificate,然后再點擊第一步中的

    2024年02月05日
    瀏覽(104)
  • 一次性搞懂什么是AIGC!

    一次性搞懂什么是AIGC!

    你知道什么是AIGC嗎?不知道?沒關系,我來告訴你。AIGC就是人工智能生成內容(Artificial Intelligence Generative Content),也就是讓AI自己動手創(chuàng)作各種各樣的內容,比如圖片、視頻、音樂、文字等等。聽起來很酷吧?那么,AIGC是怎么做到的呢?下面,我就用最簡單的語言,給你

    2024年02月06日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包