我正在使用OpenSSL在C中实现解密混合网络。
我使用EVP_SealInit,EVP_SealUpdate和EVP_SealFinal加密了数据。然后我想通过TCP将这些数据传输到一个开放端口(第一个“混合”)。
EVP_SealInit等是加密通过TCP发送的消息字符串的最佳方式吗?
如果是这种情况,我如何通过此连接传输IV?我的意思是:我可以想到几种方法,但我想如果我只是用信息传输它,我就不会看到有IV的意义。是否可以将IV设置为某个值,例如全零?我该怎么做?
如果有帮助,我很乐意发布代码。
答案 0 :(得分:1)
你需要一些可以称之为协议的东西。在其术语中,您将知道何时发送数据,何时发送IV等
如果您的会话密钥每次都是随机的,则IV也可以为零(EVP_Seal ...提供)。