2010-11-24 13 views
5

暗号化する15桁の文字列があります。入力文字列と同じ長さの暗号化文字列を作成しますか?

私は.NETのさまざまな暗号化機能を使用しようとしましたが、すべての暗号化された文字列は少なくとも24,28または32の長さです。

Padding = NoneのCipherMode.CTSについて聞いたことがありますが、入力長と同じ長さの出力を生成しますが、同じ結果を得られないようです。私はブロックサイズ、キーサイズ、塩のサイズでおもしろい。

入力文字列に16桁の数字を追加しても構いません。

誰かが回避策を知っていますか?

+1

rot13についてはどうですか? ;) –

+0

Jasonはおそらく冗談ですが、あなたの暗号化を強くする必要がなければ、実行するたびに同じであることが保証された擬似乱数のストリームを使用して、平文の各バイトをXORストリーム。 –

+0

これはどの暗号を使うべきですか?例があります..ありがとう! – Unomono

答えて

3

ECBモードを使用すると、ブロックサイズの次の倍数まで入力が丸められ、まったく同じサイズの出力が生成されます。

ほとんどすべての他のモードは、出力を入力より1ブロック大きくするために(入力をブロックサイズの次の倍数に切り上げた後に)初期化ベクトル(IV)を使用/使用します。

ほとんどのストリーム暗号は、入力とまったく同じサイズの出力を生成しますが、一般的な暗号化ライブラリでは、ストリーム暗号はブロック暗号よりもはるかに一般的ではありません。 1つの理由は、ストリーム暗号で鍵配布がはるかに深刻な問題であることです(ストリーム暗号で同じ鍵を2回使用すると、メジャーセキュリティホールが生成されます)。

2

コードワードはFormat-preserving encryptionです。残念ながら、私は.NET実装について認識していません(フレームワークは確かに何もありません)。

関連する問題