python3中rsa加密算法詳情
前言:
rsa加密,是一種加密算法,目前而言,加密算法,是對數(shù)據(jù)、密碼等進行加密。第一次接觸rsa加密算法是linux中免密登陸設(shè)置,當(dāng)時一直以為密鑰加密是像token一樣的,直到現(xiàn)在才發(fā)現(xiàn)并不是,而是一種數(shù)據(jù)加密的方式,其實也可以理解,在Linux設(shè)計哲學(xué)的理解下:“一切皆文件”,就可以把他們當(dāng)成類似的東西來理解。無非就是拿著a字符串和b字符串進行比較,如果返回trun,那么就可以進行下一步的操作,否則就會被返回異常。
在這里,其實有一個邏輯,就是先把數(shù)據(jù)進行一次加密,然后進行數(shù)據(jù)傳輸,在接收到數(shù)據(jù)后,發(fā)現(xiàn)數(shù)據(jù)是亂碼,或者說是加密過后的數(shù)據(jù),所以想要看到實際數(shù)據(jù),就需要對數(shù)據(jù)進行解密。
所以在常規(guī)的加密過程中,許多接口中的數(shù)據(jù)我們是已經(jīng)可以獲取到的,但是獲取到的數(shù)據(jù)是亂碼,一般如果想要繼續(xù)增加安全性,就可以在獲取數(shù)據(jù)的時候加簽,即在給訪問接口的服務(wù)返回數(shù)據(jù)時,就進行驗證,在他發(fā)送接收數(shù)據(jù)請求時,就拒絕他。
也就是說,目前的接口加密,其實是從兩個點出發(fā):
- 一、接收數(shù)據(jù)請求時(數(shù)據(jù)返回前)
- 二、數(shù)據(jù)本身加密(數(shù)據(jù)返回后)(如果請求,就把數(shù)據(jù)返回,但是我賭的是他拿到數(shù)據(jù)也不會解讀出來。狗頭)
就目前而言,我所能想到的加密方案,也都是對字符串加密,或者對一些標(biāo)識符進行加密,也就是發(fā)生在數(shù)據(jù)返回前所發(fā)生的事件。不知道別的大佬還有沒有別的騷操作。
技術(shù)測試實現(xiàn):
在這里使用rsa包直接進行,python第三方庫實現(xiàn)加密的還有一個pycryptodome,兩個包都可以實現(xiàn)。在這里使用rsa。
代碼邏輯簡單說一下,也做了幾個測試:
- 一、直接生成密鑰,然后進行加密,解密,
- 二、先生成密鑰,然后將密鑰寫入文件保留下來,然后再讀出來使用
- 三、直接生成密鑰,然后將密鑰寫成字符串,放在代碼中,直接使用
上述三種,其實從邏輯上講,都應(yīng)該是支持的,如果不支持,那么就應(yīng)該是過程中某個地方的格式有問題。需要進行常規(guī)處理。
在使用過程中,有一個地方需要特別注意,就是需要加密的字符串要進行encoding,在解密是需要進行decode。不要忘記這一點。否則你會發(fā)現(xiàn)加密時就會報錯。
import rsa
def secorty_data():
? ? (pub_key,sec_key) = rsa.newkeys(1024)
? ? pub = pub_key.save_pkcs1()
? ? file = open('./pub.pem','wb+')
? ? file.write(pub)
? ? sec = sec_key.save_pkcs1()
? ? files = open('./sec.pem','wb+')
? ? files.write(sec)
def create_rsa():
? ? file = open('./pub.pem','rb')
? ? content = file.read()
? ? print(content)
? ? file1 = open('./sec.pem','rb')
? ? content1 = file1.read()
? ? print(content1)
? ? pub_key = rsa.PublicKey.load_pkcs1(content)
? ? sec_key = rsa.PrivateKey.load_pkcs1(content1)
? ? message = '今天的天氣有點熱,但整體還是很好'
? ? data = rsa.encrypt(message.encode(),pub_key)
? ? print(data)
? ? result = rsa.decrypt(data,sec_key)
? ? print(result.decode())
if __name__ == '__main__':
? ? ? ? secorty_data()
? ? ? ? create_rsa()到此這篇關(guān)于python3中rsa加密算法詳情的文章就介紹到這了,更多相關(guān) rsa加密 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?RawString與open文件的newline換行符遇坑解決
這篇文章主要為大家介紹了Python?RawString與open文件的newline換行符遇坑解決示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
python opencv角點檢測連線功能的實現(xiàn)代碼
這篇文章主要介紹了python opencv角點檢測連線功能的實現(xiàn)代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
利用Python爬取微博數(shù)據(jù)生成詞云圖片實例代碼
這篇文章主要給大家介紹了關(guān)于利用Python爬取微博數(shù)據(jù)生成詞云圖片的相關(guān)資料,文中通過示例代碼介紹非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
python中如何正確使用正則表達式的詳細模式(Verbose mode expression)
許多程序設(shè)計語言都支持利用正則表達式進行字符串操作,python自然也不例外,下面這篇文章主要給大家介紹了關(guān)于在python中如何正確使用正則表達式的詳細模式(Verbose mode expression)的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11

