python3 7中RSA加密遇到的問題

2021-09-24 05:01:56 字數 2167 閱讀 1338

python3.7中rsa加密遇到的問題

對於網路上有很多python3.7中rsa加密**,一般都是生成公鑰或者私鑰,測試介面的時候公司一般會規定要使用的公鑰,則**就會報錯拿登入介面測試舉例;

執行如下**,發現報錯,我們公鑰直接傳輸了字串,而rsa.encrypt(message, pub_key )裡的pub_key 是乙個物件;則需要將pub_key 轉化為乙個pem格式物件

修改之後的**:

import rsa

import base64

#匯入秘鑰

#privatekey 字串的開頭和結尾一定要是 rsa private key,否則會報錯

privatekey = """

-----begin rsa private key-----

介面文件裡獲取,或者找開發人員

-----end rsa private key-----

"""publickey = """

-----begin public key-----

介面文件裡獲取,或者找開發人員

-----end public key-----

"""message ='***x' #需要加密的引數

print('before encrypted:',message)

pub_key = rsa.publickey.load_pkcs1_openssl_pem(publickey.encode())#將公鑰由string格式的字串轉化為乙個pem格式的物件

private_key = rsa.privatekey.load_pkcs1(privatekey.encode()) #將私鑰由string格式的字串轉化為乙個pem格式的物件

message = message.encode(encoding='utf-8') #定義引數格式

cryptedmessage = rsa.encrypt(message, pub_key)# 字串用公鑰加密

print('after encrypted:\n',cryptedmessage) # 列印加密後的檔案

key_str_text = base64.b64encode(cryptedmessage) # base64進行二進位制編碼

print(key_str_text)

decryptedmessage = rsa.decrypt(cryptedmessage, private_key) # 將加密的引數用私鑰進行解密

decryptedmessage = decryptedmessage.decode(encoding='utf-8') #定**密後的引數格式

print('after decrypted:',decryptedmessage)

執行**,發現報錯,私鑰的開頭和結尾錯誤,才會報這樣的錯誤

私鑰的定義:

privatekey = 「」"

-----begin rsa private key-----

介面文件裡獲取,或者找開發人員

-----end rsa private key-----

「」"公鑰的定義:

publickey = 「」"

-----begin public key-----

介面文件裡獲取,或者找開發人員

綜上所述:

python3.7進行rsa加密或解密的思路:

根據獲得的公鑰和私鑰字串,一定要轉化為對應的pem格式的物件;

注意公鑰和私鑰字串設定時,開頭和結尾的區別;

私鑰開頭結尾:

公鑰加密的模組,cryptedmessage=rsa.encrypt(message, pub_key);

私鑰解密的模組,decryptedmessage = rsa.decrypt(cryptedmessage, private_key);

python3 7實現base64加密和解密

優點 速度快,ascii字元,肉眼不可理解 缺點 編碼比較長,非常容易被破解,僅適用於加密非關鍵資訊的場合 python中進行base64編碼和解碼 爬蟲分析有時的get post請求中易用此類加解碼import base64 yh 你好,python bm base64.b64encode yh....

Python3 7安裝部署

教你如何在 centos 7 下編譯安裝 python 3.7 與 python 2.7.5 共存。環境 centos 7.6 x64 一 安裝python 3.7 wget 如果沒有wget命令,可以使用命令安裝 yum y install wget 安裝依賴包,避免安裝過程 現的 zipimpo...

linux環境安裝python3 7

我用的是linux centos 6 1 首先安裝依賴包,確認gcc是否安裝,可以用檢視 gcc version 2.如果沒有則進行安裝,需要sudo許可權 yum y install gcc 3.安裝其他依賴包 可以不安裝,但是可能會安裝過程中報錯 yum y install zlib devel...