RSA Python从导入的Java公钥加密消息
我使用socket将一个公钥从java导入python
在java中,我使用RSA/ECB/PKCS1Padding
在python中,我使用的是Crypto
库
在变量server_public_key
中,我导入公钥
在cipher
中,我使用PKCS1_OAEP
对消息进行加密
在ciphertext
中,我对消息进行加密
然后我把它转换成字节数组
然后我把它送回了java
但是java发送了这个错误Exception in thread "main" javax.crypto.BadPaddingException: Decryption error
这是我的密码
message = "SENDING TO JAVA"
s= socket.socket()
s.connect((address,9000))
data = s.recv(1024)
data = data[2:]
server_public_key = RSA.importKey(data)
cipher = PKCS1_OAEP.new(server_public_key)
ciphertext = cipher.encrypt(mensaje)
b = bytearray()
b.extend(ciphertext)
b = bytearray()
b.extend(ciphertext)
s.sendall(b)
# 1 楼答案
当我删除正在发送的密文的第二个副本,并清理和更正python代码时,它对我来说是有效的。下面是我使用的python代码
演示这一点的小Java服务器是
注:^{} 来自谷歌Guava库