我正在C中使用OpenSSL实现一个解密混合网络。通过TCP传输RSA加密数据的最佳方式?
我已经使用EVP_SealInit,EVP_SealUpdate和EVP_SealFinal加密了数据。然后,我想通过TCP将这些数据传输到开放端口(第一个“混合”)。
EVP_SealInit等是加密通过TCP发送的消息字符串的最佳方式吗?
如果是这样的话,我如何通过这个连接传输IV?我的意思是:我可以想到几种方法,但是我想如果我只是要传递消息,我就没有看到IV的意义。是否有可能将IV设置为某个值,例如全零?我会怎么做呢?
我很高兴发布代码,如果有帮助。
传统上,IV包含在加密数据的序言中。由于该算法是已知的,所以IV的大小也是一样。在接收端,首先将IV关闭。正如Pavel所说,如果您使用的是随机会话密钥,IV将变得无关紧要(尽管仍然是算法的一部分),您可以在两端使用填充0的IV,而不用担心发送它。第四部分的前言部分是帕维尔说的,他说你需要一个协议时,他的回答是完全正确的。 – WhozCraig