Python中利用ItsDangerous快捷實現數據加密
本文完整示例代碼及文件已上傳至我的Github倉庫https://github.com/CNFeffery/PythonPracticalSkills
這是我的系列文章「Python實用秘技」的第11期,本系列立足于筆者日常工作中使用Python積累的心得體會,每一期為大家?guī)硪粋€幾分鐘內就可學會的簡單小技巧。
作為系列第11期,我們即將學習的是:在Python中快捷加密數據。

數據安全作為老生常談的話題,是我們日常使用Python進行諸如web應用開發(fā)等任務時繞不開的話題,我們希望通過網絡傳輸一些數據的同時,還可以保證數據的安全,畢竟將一些敏感的數據傳輸到未知的環(huán)境中進行使用是非常危險的事情。
而通過使用Python庫ItsDangerous,我們就可以高效快捷地完成數據加密/解密的過程,它隸屬于pallets項目計劃,該項目計劃中也包含了Flask、Jinja、Quart等知名的web開發(fā)相關項目:

通過pip install itsdangerous完成安裝后,我們就可以使用它來加密/解密數據了,雖然其提供了種類相當多的方法來滿足各種數據加密/解密場景,但我們日常只需要用到其兩個API接口就足夠了:
常規(guī)的數據加密/解密
最常見的場景下,我們通過已有的密鑰,利用URLSafeSerializer()構建序列化器,即可將數據轉化為加密結果:

而針對加密后的結果,使用相同的密鑰構建序列化器進行解密即可:

可超時失效的數據加密/解密
有些場景下,我們希望加密生成的數據,從其生成開始的時間點算起,經歷若干時間后超時報廢,則可以使用URLSafeTimedSerializer(),其用法與URLSafeSerializer()基本一致,只是在loads()解密數據時特別地可設置參數max_age,當解密時距離此加密結果生成的時間超過max_age對應的秒數,則會觸發(fā)錯誤:

這樣就可以滿足日常絕大多數使用場景了??,有關ItsDangerous的更多進階內容請移步其官網https://itsdangerous.palletsprojects.com/。
到此這篇關于Python中利用ItsDangerous快捷實現數據加密的文章就介紹到這了,更多相關Python數據加密內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python飛機大戰(zhàn)pygame游戲框架搭建操作詳解
這篇文章主要介紹了python飛機大戰(zhàn)pygame游戲框架搭建操作,設計pygame模塊游戲創(chuàng)建、初始化、精靈組設置等相關操作技巧,需要的朋友可以參考下2019-12-12
python threading和multiprocessing模塊基本用法實例分析
這篇文章主要介紹了python threading和multiprocessing模塊基本用法,結合實例形式詳細分析了Python中threading和multiprocessing模塊基本概念、功能、使用方法及相關操作注意事項,需要的朋友可以參考下2019-07-07
python通過exifread模塊獲得圖片exif信息的方法
這篇文章主要介紹了python通過exifread模塊獲得圖片exif信息的方法,實例分析了Python操作exifread模塊的技巧,需要的朋友可以參考下2015-03-03
安裝python-docx后,無法在pycharm中導入的解決方案
這篇文章主要介紹了安裝python-docx后,無法在pycharm中導入的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
pycharm日志總是彈出“無法運行Git,未安裝Git”的問題
這篇文章主要介紹了pycharm日志總是彈出“無法運行Git,未安裝Git”的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
python字典嵌套字典的情況下找到某個key的value詳解
這篇文章主要介紹了python字典嵌套字典的情況下找到某個key的value詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07

