python實現RSA加密,簡單案例
阿新 • • 發佈:2018-12-18
環境:python3.6
第三方庫:M2Crypto 這個庫windows上很難裝,linux上直接用pip install
首先獲取一對祕鑰,具體生產祕鑰方式百度上有線上工具。
然後將生成的.pfx祕鑰檔案轉化成pem可讀檔案,
具體方法:
下載工具openssl,在openssl下使用命令:openssl pkcs12 -in 8000013189_pri.pfx -out 8000013189_pri.pem -nodes ,輸入密碼 例如:
開啟轉化後的.pem檔案內容大致如下:
接下來就是加密步驟:
def xinyan_encrypt(digest, private_key): digest=base64.b64encode(digest.encode('utf-8')) print("base64加密後:%s"%digest) result = b"" if len(digest)>117: while (len(digest) > 117): some = digest[0:117] digest = digest[117:] print(some) result += private_key.private_encrypt(some, M2Crypto.RSA.pkcs1_padding) result += private_key.private_encrypt(digest, M2Crypto.RSA.pkcs1_padding) else: result = private_key.private_encrypt(digest, M2Crypto.RSA.pkcs1_padding) result=binascii.b2a_hex(result) return result # 將生成的.pem祕鑰檔案放在同級目錄,獲取私鑰 private_key=M2Crypto.RSA.load_key('8000013189_pri.pem') # 定義加密內容 req_data={"a":1,"b":2} # 獲取加密結果 private_result = xinyan_encrypt(req_data, private_key) print(private_result)