溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python3中的rsa加密算法怎么用

發(fā)布時(shí)間:2022-05-20 09:08:04 來源:億速云 閱讀:195 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下python3中的rsa加密算法怎么用的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

前言:

rsa加密,是一種加密算法,目前而言,加密算法,是對數(shù)據(jù)、密碼等進(jìn)行加密。第一次接觸rsa加密算法是linux中免密登陸設(shè)置,當(dāng)時(shí)一直以為密鑰加密是像token一樣的,直到現(xiàn)在才發(fā)現(xiàn)并不是,而是一種數(shù)據(jù)加密的方式,其實(shí)也可以理解,在Linux設(shè)計(jì)哲學(xué)的理解下:“一切皆文件”,就可以把他們當(dāng)成類似的東西來理解。無非就是拿著a字符串和b字符串進(jìn)行比較,如果返回trun,那么就可以進(jìn)行下一步的操作,否則就會被返回異常。

在這里,其實(shí)有一個(gè)邏輯,就是先把數(shù)據(jù)進(jìn)行一次加密,然后進(jìn)行數(shù)據(jù)傳輸,在接收到數(shù)據(jù)后,發(fā)現(xiàn)數(shù)據(jù)是亂碼,或者說是加密過后的數(shù)據(jù),所以想要看到實(shí)際數(shù)據(jù),就需要對數(shù)據(jù)進(jìn)行解密。

所以在常規(guī)的加密過程中,許多接口中的數(shù)據(jù)我們是已經(jīng)可以獲取到的,但是獲取到的數(shù)據(jù)是亂碼,一般如果想要繼續(xù)增加安全性,就可以在獲取數(shù)據(jù)的時(shí)候加簽,即在給訪問接口的服務(wù)返回?cái)?shù)據(jù)時(shí),就進(jìn)行驗(yàn)證,在他發(fā)送接收數(shù)據(jù)請求時(shí),就拒絕他。

也就是說,目前的接口加密,其實(shí)是從兩個(gè)點(diǎn)出發(fā):

  • 一、接收數(shù)據(jù)請求時(shí)(數(shù)據(jù)返回前)

  • 二、數(shù)據(jù)本身加密(數(shù)據(jù)返回后)(如果請求,就把數(shù)據(jù)返回,但是我賭的是他拿到數(shù)據(jù)也不會解讀出來。狗頭)

就目前而言,我所能想到的加密方案,也都是對字符串加密,或者對一些標(biāo)識符進(jìn)行加密,也就是發(fā)生在數(shù)據(jù)返回前所發(fā)生的事件。不知道別的大佬還有沒有別的騷操作。

技術(shù)測試實(shí)現(xiàn):

在這里使用rsa包直接進(jìn)行,python第三方庫實(shí)現(xiàn)加密的還有一個(gè)pycryptodome,兩個(gè)包都可以實(shí)現(xiàn)。在這里使用rsa。

代碼邏輯簡單說一下,也做了幾個(gè)測試:

  • 一、直接生成密鑰,然后進(jìn)行加密,解密,

  • 二、先生成密鑰,然后將密鑰寫入文件保留下來,然后再讀出來使用

  • 三、直接生成密鑰,然后將密鑰寫成字符串,放在代碼中,直接使用

上述三種,其實(shí)從邏輯上講,都應(yīng)該是支持的,如果不支持,那么就應(yīng)該是過程中某個(gè)地方的格式有問題。需要進(jìn)行常規(guī)處理。

在使用過程中,有一個(gè)地方需要特別注意,就是需要加密的字符串要進(jìn)行encoding,在解密是需要進(jìn)行decode。不要忘記這一點(diǎn)。否則你會發(fā)現(xiàn)加密時(shí)就會報(bào)錯(cuò)。

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 = '今天的天氣有點(diǎn)熱,但整體還是很好'
    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()

以上就是“python3中的rsa加密算法怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI