1. 程式人生 > >python實現RSA加密,簡單案例

python實現RSA加密,簡單案例

環境: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)