python RSA 公私鑰 對檔案加密解密

2021-10-04 10:02:47 字數 1354 閱讀 1584

使用rsa模組

import rsa

import base64

# 讀取私鑰

privkey = rsa.privatekey.load_pkcs1(

open

("./private.pem"

,"rb"

).read())

# 讀取公鑰

pubkey = rsa.publickey.load_pkcs1(

open

("./public.pem"

,"rb"

).read())

message =

open

("mt00502019m15267985_大白.pdf"

,"rb"

).read(

)# 生成hash值

hash

= rsa.compute_hash(message,

'sha-1'

)# 生成簽名值

signature = rsa.sign_hash(

hash

, privkey,

'sha-1'

)print

(signature)

# 如果有傳輸上的需要,利用base64做型別轉換

print

(base64.b64encode(signature)

)a =

str(base64.b64encode(signature)

, encoding=

"utf-8"

)print

(a)j =

bytes

(a, encoding=

"utf-8"

)print

(base64.b64decode(j)

)signature2 = base64.b64decode(j)

message =

open

("mt00502019m15267985_大白.pdf"

,"rb"

).read(

)# 公鑰驗證

r = rsa.verify(message, signature2, pubkey)

print

(r)

驗證成功的話,r的值為hash_method

**示例中是hash_method是sha-1

驗證失敗的話是會丟擲異常的

(如果不想異常丟擲,try …except)

以下是rsa.verify的原始碼截圖

RSA公私鑰生成

1 生成私鑰 openssl genrsa out rsa private key.pem 1024 2 根據私鑰生成與之配對的公鑰 openssl rsa in rsa private key.pem pubout out rsa public key.pem 3 將第1步生成的私鑰轉換成pkcs...

openssl公私鑰生成

1 雙擊啟動bin openssl.exe 2 手動輸入命令 或者 複製一行命令,右擊標題欄 編輯 貼上 3 enter完成輸入,生成對應公私鑰檔案 生成步驟 1 生成private key.pem openssl genrsa out private key.pem 1024 2 生成pkcs8 ...

Linux ssh 公私鑰配置

linux ssh 公私鑰配置 ssh 公私鑰可實現無密碼的情況下直接直接登入到服務端。方便我們管理,而且也可以設定ssh完全通過公私鑰登入,不可通過密碼登入,來提高我們的伺服器安全程度。配置 檔案 配置私鑰測試登入 1 將公鑰新增到authorized keys檔案內 cat id rsa.pub...