• 締切済み

文字列の暗号化と復号化

.NETで文字列を固定長に暗号化したい。(ユニコード対応できる) また、暗号化したものを復号化します。 .NETに付いている暗号化のモジュールはいくつがありますが、その以外のやり方がありましょうか? 例:何桁の平文を暗号化しでも8桁の十六進数又はBASE64の秘文になる。

みんなの回答

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.2

この要件ですとCRC32が該当しますが、復号できませんよ。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

> 例:何桁の平文を暗号化しでも8桁の十六進数又はBASE64の秘文になる。 原理的にこれは不可能です。8桁の16進数だと32bit分の情報量しかありません。暗号化は圧縮手法ではありませんので平文も32bit(1byte文字で4文字、ユニコードだと2文字)以下でないといけません。 また圧縮を併用したとしても復号できるなら平文の情報量は暗号文のパターン(2^32)以下です。大したデータは送れないでしょう。 任意長文字列を固定長データに変換する手法としては暗号関係ではハッシュあるいはメッセージダイジェストがありますが、これはデジタル署名など原文の内容を検証するためのオプション情報を作るものでこれだけから原文を復元できることはありません。 またハッシュも通常は160bit以上のサイズがあります。 # 短すぎると総当りで衝突データが作れるので検証に使えない

zb_jiang
質問者

お礼

ご回答ありがとうございます。 やはり不可能ですね。