python 版本 3.6 , 在windows以及linux上都进行过测试
由于 python 中 rsa 加密存在长度限制, 虽然可以通过分片加密来解决,
但是更好的做法是通过 rsa 加密传输 aes密钥 给服务器, 携带的信息通过该密钥进行 aes 加密,
服务器通过 rsa私钥 得到 aes密钥 后解析信息, 并继续使用密钥进行双向通信
python中加密使用 pycryptodome 模块
pip install pycryptodome
Python
Python资源共享群:484031800
其中接受的参数text,key均为字符串
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
from Crypto.Cipher import AES
from base64 import b64decode
from base64 import b64encode
import re
def rsa_encode(text, public_key):
key = RSA.importKey(b64decode(public_key))
cipher = PKCS1_v1_5.new(key)
return b64encode(cipher.encrypt(text.encode(encoding='utf-8'))).decode('utf-8')
def aes_encode(text, key):
key = key.encode('utf-8')
cipher = AES.new(key, AES.MODE_CBC, key)
text = text + (16 - len(text) % 16) * chr(16 - len(text) % 16)
return b64encode(cipher.encrypt(text.encode(encoding='utf-8'))).decode('utf-8')
def aes_decode(cipher

本文介绍了如何在Python 3.6环境下,利用pycryptodome库实现RSA加密传输AES密钥,以便与Java服务器进行加密通信。通过Python的RSA加密发送AES密钥,Java端使用私钥解密获取AES密钥,从而实现信息的安全交互。
最低0.47元/天 解锁文章
319

被折叠的 条评论
为什么被折叠?



