0

プリミティブ ブロック暗号を実装しています。ただし、実装上、暗号文のサイズは平文のサイズと異なる場合があります。エンコード後に形成される暗号文のサイズを計算する方法を知る必要があります。strlen(char *) は、暗号文に複数の '\n' 文字が含まれている可能性があるため機能しません。この問題の回避策はありますか?

4

1 に答える 1

2

エンコーディング関数はサイズを返す必要があります。これは、それを知っている唯一のエンティティです。「サイズを調べる」ために別の関数を実装すると、アルゴリズムの半分を再実装することになります。

したがって、エンコーディング関数に次のようなものがある場合:

while (...)
    buf[i++] = stuff;

戻るべきiです。

于 2012-02-01T17:20:22.543 に答える