2016-06-19 6 views
1

セイを暗号化したときに、私はチャットメッセージの文字列を持っている、と文字でその長さは、私はそれを暗号化するにはどうすればよい1から200暗号化し、一定の長さのある文字列

に、例えば、入力文字列の長さに関係なく、常に固定長の暗号化された文字列、例えば400文字を生成する方法?

この機能を提供する暗号化アルゴリズム、またはこの結果を達成するためにどのような手法を使用する必要がありますか?

元の文字列をn個のシンボルにパッディングすると、同じ長さの異なる文字列に対して同じ長さの出力文字列がどのアルゴリズムで生成されますか?私はアルゴリズムの大部分が、同じ入力文字列に対して異なる長さの文字列を持つ文字列を生成することに気付きました。と "MewMew"。

+0

元のメッセージが400文字を超える場合はどうなりますか? –

+2

ほとんどのブロックレベルのサイパーは、ある値の倍数であるサイファーテキストを生成します。あなたの環境におけるデフォルトのサイファーがすでに要件を満たしている可能性があります。そうでない場合は、いつでも手でパッドすることができます。 –

+1

なぜ可変長が問題になるのか聞いてもよろしいですか?固定長の文字列を使用してどのような問題を解決していますか?例えば1つの連結文字列に他の項目が格納されていますか?文字列の長さを示す他の方法もあります。 –

答えて

0

メッセージを暗号化する前に、希望の長さにパッドするだけです。

AESのようなブロック暗号は、入力のサイズによって決まる予測可能な出力サイズを常に生成します。ここで、サイズnのメッセージは、サイズがn + 1(パディングモードを前提とする)の暗号化されたメッセージを生成し、16バイトの最も近いブロックに切り上げる。したがって、サイズ384-399バイトのメッセージは400バイトの出力を生成します。

+0

私はそれを働かせる方法だと思うので、質問の更新を見てください。 –

+0

私の更新の回答 –

+0

質問は何ですか?この場合、標準のPKCS#7パディングは適用できません。あいまいではないパディングスキームを提案できますか? –

関連する問題