如何还原rsa公钥?或将字节更改为python中的rsa公钥?

时间:2018-12-01 09:05:43

标签: python encryption rsa

我正在制作一个具有密钥交换算法的套接字程序。 该算法与Web浏览器和Web服务器之间的SSL密钥交换非常相似。 这些是该算法中的步骤。

  1. 服务器与客户端建立套接字。
  2. 如果建立了套接字,则服务器将生成rsa公钥,私钥,并将公钥发送给客户端。
  3. 客户端从服务器接收rsa公钥,并生成rsa公钥,私钥,并将公钥发送到服务器。
  4. 服务器从服务器接收rsa公钥。
  5. 服务器生成AES密钥,类型为字符串。
  6. 服务器使用客户端的rsa公钥加密AESkey。

在此步骤中,我有一个错误。

因为从客户端收到的密钥服务器的类型不是RSA公钥,而是字节数组。

如何将字节数组更改为RSA公钥?

还是还有其他恢复RSA公钥的方法?像Java中的Key Factory方法一样?

1 个答案:

答案 0 :(得分:0)

X509EncodedKeySpec可以用于"RSA"的{​​{1}}实例。这需要一个字节数组,该字节数组被编码为X.509证书中的SubjectPublicKeyInfo(因此具有名称)。

还有其他方式编码公共密钥。最基本的编码之一是PKCS#1兼容密钥格式。您将看到如何处理这类密钥here,因为它不直接支持用Java对其进行解码。