2012-01-16 11 views
2

私は、ファイルのコレクションを暗号化し、それらを圧縮してインターネット上に公開するアプリケーションを持っています。 Silverlightアプリケーションは、zipファイルをダウンロードし、各ファイルの復号化を試みます。ASP.Netでファイルを暗号化し、Silverlightで復号化するにはどうすればよいですか?

私が持っている問題は、.NETアプリケーション向けに書いた暗号化コードは、CLRが異なるため、Silverlightアプリケーションには使用できないということです。

アルゴリズムを作成するための元のC#.NETコードは次のとおり

private static SymmetricAlgorithm CreateRijndael(string password, byte[] salt) 
{ 
    var derivedBytes = new Rfc2898DeriveBytes(password, salt, 1000); 

    SymmetricAlgorithm sma = Rijndael.Create(); 
    sma.KeySize = 256; 
    sma.Key = derivedBytes.GetBytes(32); 
    sma.Padding = PaddingMode.PKCS7; 
    return sma; 
} 

しかしながら、ラインダールは、Silverlightで露光されません。これを修正して、.NETアプリケーション用に同じコードを使用しながらSilverlight用にコンパイルできるようにするにはどうすればよいですか?

+0

Silverlightがクライアント上で動作するため、熟練した開発者がxapファイルを逆コンパイルしてパスワード/ salt値を取得できると思っていますか? –

+0

なぜSSLを使用しないのですか? – Steven

+0

@Steve Bおそらく、この場合、パスワード値はコンパイルされたアプリケーションの一部ではありません。 – Digbyswift

答えて

0

RijndaelはSilverlightで公開されていませんが、Aesの実装は、

AESそれは192と256ビットブロックサイズを使用禁止IOW、128ビットのブロックサイズでラインダールです。 .NETのRijndaelはデフォルトで128ビットブロックサイズですので、別のブロックサイズを使用しない限り、問題なく相互運用できるはずです。

本当にSilverlightに欠けている他の暗号化機能に慣れていたら、必要なものをMonoクラスライブラリからコピー/貼り付けすることをお勧めします。

関連する問題