我正在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