通过套接字发送RSA公钥并将其导入加密[VB.NET]

通过套接字发送RSA公钥并将其导入加密[VB.NET],vb.net,encryption,rsa,Vb.net,Encryption,Rsa,我正在编写一个生成公钥和私钥对的程序,然后通过套接字将公钥发送到另一个用于加密字符串数据的程序。 我在VB.NET中使用RSA,我能够生成所需的密钥: 我的公钥v+u4Lt4nyLXincU+wbReOTU3nwiTZ7MlFkA7cytLOjuviHrAdnaVAV8+WoFhy9nADGtk1K0OLAE1ZwGzt/kgUw== 我的问题是:公钥是否足以被其他用户加密?如果是这样,如何将其导入RSA参数以加密数据 编辑: 我使用以下代码尝试导入公钥,但失败: Dim Parameters

我正在编写一个生成公钥和私钥对的程序,然后通过套接字将公钥发送到另一个用于加密字符串数据的程序。 我在VB.NET中使用RSA,我能够生成所需的密钥:

我的公钥v+u4Lt4nyLXincU+wbReOTU3nwiTZ7MlFkA7cytLOjuviHrAdnaVAV8+WoFhy9nADGtk1K0OLAE1ZwGzt/kgUw==

我的问题是:公钥是否足以被其他用户加密?如果是这样,如何将其导入RSA参数以加密数据

编辑:

我使用以下代码尝试导入公钥,但失败:

Dim Parameters As New RSAParameters
Parameters.Modulus = encoder.GetBytes(publicKey)
RSA.ImportParameters(Parameters)
我的问题是:公钥是否足以被其他人加密 用户

答案往往是:视情况而定

您描述所提议的协议的方式对中间人攻击非常开放。伊芙可以截取电线上的信息,用她自己的钥匙代替钥匙

从理论上讲,加密数据就足够了。然而,要在现实世界中有用,还必须使用对称加密

因此,我的建议如下: 如果你不得不问这样的问题,不要做你自己的协议。从未。一次也没有使用知名的、成熟的技术,如TLS

我的问题是:公钥是否足以被其他人加密 用户

答案往往是:视情况而定

您描述所提议的协议的方式对中间人攻击非常开放。伊芙可以截取电线上的信息,用她自己的钥匙代替钥匙

从理论上讲,加密数据就足够了。然而,要在现实世界中有用,还必须使用对称加密

因此,我的建议如下:
如果你不得不问这样的问题,不要做你自己的协议。从未。一次也没有使用知名的、成熟的技术,如TLS

我发现这个页面对我非常有用


我还发现,我犯了一个错误,在加密之后将加密的字节数组转换为字符串,然后在解密之前将其转换为字节数组。最后一个字节数组的大小与原来的不一样。

我发现这个页面对我非常有用


我还发现,我犯了一个错误,在加密之后将加密的字节数组转换为字符串,然后在解密之前将其转换为字节数组。最后一个字节数组的大小与原始数组的大小不同。

我在VB.net中有一个类似的项目,您将无法发送较长的消息,因为如果您使用2048bit RSA,您可以发送的最大数据大小将为245字节

我使用了RSA公钥,因此每个客户机都将使用AES加密并传递他们自己的密钥,这些密钥使用RSA加密,然后服务器将解密密钥并使用该密钥解析数据。这同时使用了非对称加密(RSA)和对称加密(AES)。这里是一个有用的视频链接,在我做这个项目时解释了这一点


我导入密钥的方式是在RSA CryptoServiceProvider中使用.toXMLString和.fromXMLString。这里有一个很好的链接来解释这一点,也许我能做得更好

我在VB.net中有一个类似的项目,您将无法发送较长的消息,因为如果您使用的是2048位RSA,您可以发送的最大数据大小将为245字节

我使用了RSA公钥,因此每个客户机都将使用AES加密并传递他们自己的密钥,这些密钥使用RSA加密,然后服务器将解密密钥并使用该密钥解析数据。这同时使用了非对称加密(RSA)和对称加密(AES)。这里是一个有用的视频链接,在我做这个项目时解释了这一点


我导入密钥的方式是在RSA CryptoServiceProvider中使用.toXMLString和.fromXMLString。这里有一个很好的链接来解释这一点,也许我能做得更好

谢谢你的建议。这是一个基本程序。稍后我将使用对称加密和私钥加密进行身份验证。现在,我只需要知道如何将密钥导入RSA参数以成功加密/解密。谢谢您的建议。这是一个基本程序。稍后我将使用对称加密和私钥加密进行身份验证。现在,我只需要知道如何将密钥导入RSA参数,以便成功地进行加密/解密。