Pythonのpycryptodomeの暗号化と復号化

 

PIP3 pycryptodomeをインストール

my_private_rsa_key.bin

----- BEGIN RSA PRIVATE KEY ----- 
MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQ 
WMNW649887VGJiGr / L5i2osbl8C9 + WJTeucF + S76xFxdU6jE0NQ + Z + zEdhUTooNR 
aY5nZiu5PgDB0ED / ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB 
AoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc / Z2hfenfYEzu + 57fI4fv 
xTQ // 5DbzRR / XKb8ulNv6 + CHyPF31xk7YOBfkGI8qjLoq06V + FyBfDSwL8KbLyeH 
m7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN + N9dECQQD0ONYRNZeuM8zd 
8XJTSdcIX4a3gy3GGCJxOzv16XHxD03GW6UNLmfPwenKu + cdrQeaqEixrCejXdAF 
Z / 7 + BSMpAkEA8EaSOeP5Xr3ZrbiKzi6TGMwHMvC7HdJxaBJbVRfApFrE0 /mPwmP5 
rN7QwjrMY + 0 + AbXcm8mRQyQ1 + IGEembsdwJBAN6az8Rv7QnD / YBvi52POIlRSSIM 
V7SwWvSK4WSMnGb1ZBbhgdg57DXaspcwHsFV7hByQ5BvMtIduHcT14ECfcECQATe 
aTgjFnqE / lQ22Rk0eGaYO80cc643BXVGafNfd9fcvwBMnk0iGX0XRsOozVt5Azil 
psLBYuApa66NcVHJpCECQQDTjI2AQhFc1yRnCU / YgDnSpJVm1nASoRUnU8Jfm3Oz 
uku7JUXcVpt08DFSceCEX9unCuMcT72rAQlLpdZir876
 ----- END RSA PRIVATE KEY -----

コード

#コーディング= UTF- 8 

からCrypto.PublicKeyインポートRSA
 からCrypto.CipherインポートPKCS1_OAEP、PKCS1_v1_5の
インポートBASE64 
からurllibはインポート解析

DEF decrypt_data(入力データ、コード = " 123456 " ):
    #1 URLDecodeの
    データ = parse.unquote(入力データ)
    #1 base64decode 
    データ = base64.b64decode(データ)
    PRIVATE_KEY = RSA.import_key(オープン(" /Users/macname/Desktop/encrype/my_private_rsa_key.bin ").read()、パスフレーズ= コード) 
    #使用PKCS1_v1_5、不要PKCS1_OAEP用
    #使用PKCS1_OAEP的话、前端jsencrypt.js加密的数据解密不了
    cipher_rsa = PKCS1_v1_5。新しい(PRIVATE_KEY) 当解密失败、会返回センチネル
    センチネル = なし
    RET = cipher_rsa.decrypt(データ、センチネル)
     リターンRETの

印刷(decrypt_data(" fhZf1TKEk2HiAG3BW / kuhuSXdCvSXzxW29re1OGgtQVUyO ++ l6KwxorpPQdZRGgu7E4muN5HyCBRBI6QTth + RGaNnlh / 7DP8y3SmHjWyiYbXxAGCY5b8Vzog3IAqOZWF1QTrU7Azn + HoMe4MO4MXmH3uNXEi63nUMJlytcEpi14 = "))

 

 

参考:

https://github.com/Legrandin/pycryptodome

 

おすすめ

転載: www.cnblogs.com/sea-stream/p/11486870.html