利用python-hashlib 做介面驗證token
昨天在群裡有同學文件,如果對外一個介面,有什麼好的方案做驗證嗎?我當時給出了傳入一個token到headers裡,然後,在服務端獲取這個token解析,驗證合法性。那麼我今天針對這個方案,給出一個小的demo,以供同學參考:
首先我們的方案是:利用 一個 簽名 + 一個時間戳 生成一個md5 加密的token,並將這個token與時間戳一起放到headers中進行http請求,方法如下,我們先上圖,然後進行解釋:
好,我們開始逐行解釋,首先匯入3個包,time生成時間戳,hashlib進行加密,requests做http請求使用,
接下來 我們來定義一個內部統一的secret key 並 獲得當前的時間戳 timestamp,並將他們拼在一起生成strdata,
然後我們建立token物件,這裡我們選擇md5的加密方式,也可以使用sha的加密(越高越難破解)
最後我們將token和timestamp放入headers並且透過requests傳到介面,客戶端的工作就完成了。那麼我們看看介面端幹了什麼,一樣先看圖,後解釋(請無視我的紅色錯誤提示,我這裡模擬的一個語法場景進行的虛擬碼):
好,我們以這個虛擬碼為例,他是一箇中介軟體業務,對於每個介面都會先走這個中介軟體函式,如果驗證失敗,會直接返回,驗證透過,則走完中介軟體函式,直接繼續執行,其實也可以理解為攔截器。
好,我們在中介軟體裡,獲取headers中的token和timestamp,如果有任一不存在都驗證失敗,返回false,之後要做的就是在伺服器端使用和客戶端達成一致的secret和傳過來的timestamp生成伺服器端的validtoken,並與客戶端傳過來的token進行對比,如果不一致,返回false。到這裡就驗證完成了。中介軟體不再攔截,進行介面操作~
總結:驗證方式有太多種,有的是從客戶端加密,服務端解密,也有我這種雙方生成相同token驗證的,傳輸方式不同的。這裡給大家舉一個例子,給大家一個參考
················
歡迎關注課程:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/810/viewspace-2824264/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 6.9找回機制介面安全&驗證碼token介面
- SpringBoot 整合 JWT 實現 token 驗證,token 登出Spring BootJWT
- springboot+jwt做api的token認證Spring BootJWTAPI
- Android之window機制token驗證Android
- 簡聊 Session 與 Token 身份驗證Session
- 接入華為應用內購買,驗證購買Token介面,返回“rights invalid”
- Token驗證失敗的解決方法
- vue登入註冊,帶token驗證Vue
- vue中axios如何實現token驗證VueiOS
- Spring Boot使用JWT進行token驗證Spring BootJWT
- keycloak~使用jwks驗證token的合法性
- Node教程——封裝一個token驗證器封裝
- node實現基於token的身份驗證
- json web token 實踐登入以及校驗碼驗證JSONWeb
- Api介面簽名驗證API
- 圖片驗證碼介面
- 接入微信公眾號登入-驗證token
- Laravel 學習之 XSRF-TOKEN 驗證問題Laravel
- SpringBoot整合JWT做身份驗證Spring BootJWT
- python利用Tesseract識別驗證碼Python
- 實現基於JWT的Token登入驗證功能JWT
- 微信token驗證失敗的幾種情況
- SMSSDK驗證碼服務端校驗介面服務端
- ElasticSearch 通過nginx做HTTP驗證ElasticsearchNginxHTTP
- 利用jQuery實現表單驗證功能jQuery
- 【Azure Developer】如何驗證 Azure AD的JWT Token (JSON Web 令牌)?DeveloperJWTJSONWeb
- Yii2 使用者使用登入元件token驗證元件
- Laravel 配置微信公眾平臺驗證 token 失敗Laravel
- 使用 Spring Validator 介面實現驗證Spring
- 簡單API介面簽名驗證API
- python基於Json Web Token做服務端使用者認證PythonJSONWeb服務端
- vue4 + laravel8使用JWT登入及token驗證VueLaravelJWT
- Python暴力破解網站登入密碼(帶token驗證)Python網站密碼
- koa2,koa-jwt中token驗證實戰詳解JWT
- 如何利用策略模式優化表單驗證模式優化
- 介面鑑權之sign簽名校驗與JWT驗證JWT
- PHP 攻擊簡訊驗證碼介面PHP
- dummy_token實驗