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

數(shù)據(jù)安全作為老生常談的話題,是我們?nèi)粘J褂?code>Python進(jìn)行諸如web應(yīng)用開發(fā)等任務(wù)時(shí)繞不開的話題,我們希望通過網(wǎng)絡(luò)傳輸一些數(shù)據(jù)的同時(shí),還可以保證數(shù)據(jù)的安全,畢竟將一些敏感的數(shù)據(jù)傳輸?shù)轿粗沫h(huán)境中進(jìn)行使用是非常危險(xiǎn)的事情。
而通過使用Python庫ItsDangerous,我們就可以高效快捷地完成數(shù)據(jù)加密/解密的過程,它隸屬于pallets項(xiàng)目計(jì)劃,該項(xiàng)目計(jì)劃中也包含了Flask、Jinja、Quart等知名的web開發(fā)相關(guān)項(xiàng)目:

通過pip install itsdangerous完成安裝后,我們就可以使用它來加密/解密數(shù)據(jù)了,雖然其提供了種類相當(dāng)多的方法來滿足各種數(shù)據(jù)加密/解密場景,但我們?nèi)粘V恍枰玫狡鋬蓚€API接口就足夠了:
常規(guī)的數(shù)據(jù)加密/解密
最常見的場景下,我們通過已有的密鑰,利用URLSafeSerializer()構(gòu)建序列化器,即可將數(shù)據(jù)轉(zhuǎn)化為加密結(jié)果:

而針對加密后的結(jié)果,使用相同的密鑰構(gòu)建序列化器進(jìn)行解密即可:

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

這樣就可以滿足日常絕大多數(shù)使用場景了??,有關(guān)ItsDangerous的更多進(jìn)階內(nèi)容請移步其官網(wǎng)https://itsdangerous.palletsprojects.com/。
到此這篇關(guān)于Python中利用ItsDangerous快捷實(shí)現(xiàn)數(shù)據(jù)加密的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Numpy:找到list中的np.nan值方法
今天小編就為大家分享一篇Python Numpy:找到list中的np.nan值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
python 發(fā)送和接收ActiveMQ消息的實(shí)例
今天小編就為大家分享一篇python 發(fā)送和接收ActiveMQ消息的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
python GUI庫圖形界面開發(fā)之PyQt5時(shí)間控件QTimer詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5時(shí)間控件QTimer詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-02-02
Python讀寫二進(jìn)制文件的實(shí)現(xiàn)
本文主要介紹了Python讀寫二進(jìn)制文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Python棧算法的實(shí)現(xiàn)與簡單應(yīng)用示例
這篇文章主要介紹了Python棧算法的實(shí)現(xiàn)與簡單應(yīng)用,簡單講述了棧的原理并結(jié)合實(shí)例形式給出了基于棧實(shí)現(xiàn)的進(jìn)制轉(zhuǎn)換與括號匹配等相關(guān)使用技巧,需要的朋友可以參考下2017-11-11

