1

私は自分の問題をどのように説明するのか分かりません。これはバイト配列を暗号化する最も簡単な方法であり、.Encrypt(...)メソッドで文字通り「不特定のエラー」が発生します。

byte[] cleartext =
{
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x71, 0x77, 0x65, 0x72, 0x74, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x61, 0x73, 0x64, 0x66, 0x67, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

Logger.Hex("Clear test login text", cleartext);

byte[] ciphered = new RSACryptoServiceProvider(1024).Encrypt(cleartext, false);

Logger.Hex("Ciphered test login text", ciphered);

Console.Read();

注:Logger.Hexは、バイト配列の16進文字列表現を表示します。干渉するものはありません。

4

1 に答える 1

3

1024ビット(128バイト)のキーサイズとPKCS#1 v1.5パディングを使用しており、128バイトの配列をに渡しますEncrypt

MSDNから:

                                     rgbパラメータの最大長

直接暗号化(PKCS#1 v1.5)モジュラスサイズ-11。(11バイトは
                                     可能な限り最小限のパディング。)

したがって、1024ビットキーは128バイトを暗号化するには小さすぎます。キーサイズを大きくしてみましたか?

于 2009-09-08T00:57:51.640 に答える