2012-02-01 7 views
0

私はプリミティブブロック暗号を実装しています。しかし、実装は、暗号文のサイズが平文のサイズと異なる場合があります。私は、暗号化の後に形成される暗号文のサイズをどのように計算できるかを知る必要があります。暗号文に複数の '\ n'文字が含まれる可能性があるため、strlen(char *)は機能しません。この問題の回避策はありますか?cのビットブロックのサイズを調べる

+1

strlenには埋め込み '\ n'の問題はありません。埋め込まれた '\ 0'文字を意味しますか? –

+1

私は理解していません - あなたが暗号を実装している場合、どのように出力ブロックの大きさがわからないのですか? 「デコード時にブロックを解析するにはどうしたらいいですか?」という場合は、ブロックをラップするためにいくつかのプロトコルを実装する必要があります。 –

答えて

2

あなたのエンコーディング関数はサイズを返すべきです、それを知っている唯一のエンティティです。 「サイズを見つける」ための別の機能を実装すると、アルゴリズムの半分が再実装されます。

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

あなたはiを返す必要があります:あなたのエンコーディング機能であれば

は、だから、このようなものを持っています。

+0

非常に唯一の良い答え... – Bart

関連する問題