2011-09-25 92 views
0

簡單地說,當給定長度爲n的編碼消息時,無論如何,我可以預先將解碼消息的長度(對於存儲器分配目的)?SSL,基於編碼消息獲得解碼消息的長度的上限

我認爲,加入到加密位長度的消息的長度要夠,但顯然它不是...提前

+0

請使用最精確的語言。你的意思是什麼? SSL/TLS協議使用具有最大尺寸的SSL/TLS *記錄*。您可以使用SSL/TLS發送任意大小的*消息*,*消息*作爲應用程序層的概念。 –

回答

1

沒有

感謝,因爲SSL支持壓縮。另外,我不確定你正在編碼什麼,但是通常你不知道編碼消息的長度是多少。你不能假設你剛遞交SSL引擎的任何數據都是整個編碼信息 - 它可能只是其中的一部分。

1

從理論上講,密文至多是(IV +明文+填充),其中IV和填充每個最多一個塊。在實踐中,事情可能會有所不同:明文可能會壓縮並在解壓縮時自動擴展。或者,正如戴維所說,密碼可能會被分成塊,每個塊都單獨發送。

更好地使用一些靈活的容器來接收消息,並稍後調整到適當的固定大小的容器,如果你需要的話。以這種方式避免緩衝區溢出也更容易。