我正在使用SSLStream使用OpenSSL证书与客户端和服务器进行通信。
我将使用的客户端是拥有自己软件的机器,需要使用RSA加密。
我制作了一个服务器和一个客户端,只是为了测试,使用我的计算机作为客户端,以及其他计算机作为服务器,我做了一个简单的密钥交换,只是为了测试这些机器之间的sslstream和de rsa cryptograhy。
两台机器都发送这样的公钥:
byte[] modulus = pubkey.Modulus;
sslStream.Write(modulus, 0, modulus.Length);
sslStream.Flush();
两台机器都收到密钥并按照以下方式创建:
byte[] exponent = {1, 0, 1};
byte[] modulus = new byte[256];
sslStream.Read(modulus, 0, modulus.Length);
clientPublicKey.D = null;
clientPublicKey.DP = null;
clientPublicKey.DQ = null;
clientPublicKey.Exponent = exponent;
clientPublicKey.InverseQ = null;
clientPublicKey.Modulus = modulus;
clientPublicKey.P = null;
clientPublicKey.Q = null;
但是,使用我将使用的原始客户端进行测试时,密钥交换方式不同。
交换密钥有另一种方式吗?因为我确信原始机器使用另一种方式与我的服务器交换这些密钥。