1

RSA 暗号化/復号化が必要な関数があります。提供された .pem ファイルには、RSA のペア キーが含まれています。.NET から PEM RSA 秘密鍵を読み取る方法と同じように Org.BouncyCastle を使用する。またはhttp://www.jensign.com/opensslkey/opensslkey.csのメソッドを使用します。私が受け取ったのは、パラメーター DQ が 63 バイト (64 バイトとは異なる) の「不良データ」です。(.pem ファイルは問題ないと言われています。) 何か問題はありますか?

4

1 に答える 1

2

すべての RSA パラメータは単純な (巨大な) 数値です。それらのほとんどは同じサイズ (キー ペアの長さが同じ、たとえば 1024) ですが、常にそうとは限りません。コードでこれをカバーする必要があります。

なんで ?一部の数値は少し小さくなり、他の数値よりも少ないビットに収まるためです。あなたの場合、数値は63バイトに収まるため、base64(PEM)でエンコードされています。

解決策は、読み取っているデータをパディングすることです。つまり、デコードしている 63 の前に 0x00 バイトを追加します。これは引き続き同じ数値 (数学的に) であり、RSA キー パラメーターのすべての .NET 検証に合格します。

ps Mono ソース コードを見て、これがどのように処理されるかを確認できます。

于 2011-07-25T21:17:21.320 に答える