RSA暗号化/復号化が必要な機能があります。提供された.pemファイルには、RSAのペアキーが含まれています。 How to read a PEM RSA private key from .NETと同じOrg.BouncyCastleを使用します。またはhttp://www.jensign.com/opensslkey/opensslkey.csのメソッドを使用します。私が受け取ったのは、パラメータDQの「不良データ」が63バイト(64バイトと異なる)です。 (.pemファイルは正常だったと言われています)ここに問題はありますか?PEMファイルを読み込み、DQパラメータで63バイトを取得
1
A
答えて
2
すべてのRSAパラメータは単純に(巨大な)数値です。それらの大部分は同じサイズ(同じキーペアの長さ、たとえば1024)で同じサイズを持ちますが、これは必ずしもそうではありません。コード内でこれをカバーする必要があります。
なぜですか?いくつかの数字は少し小さくなり、他の数字よりも少ないビットに収まるためです。あなたのケースでは、数字は63バイトに収まるので、base64(PEM)はそのようにエンコードされています。
解決策は、読み込み中のデータを埋め込むことです。つまり、デコードする前に0x00バイトを追加することです。これは同じ数値(数学的賢さ)であり、RSAキーパラメータのすべての.NET検証に合格します。
p.s. Monoのソースコードを見て、これがどう処理されているか見ることができます。
関連する問題
- 1. ファイルからバイト[]を読み込み、読み込みます
- 2. バイト配列の読み込みは、バイト配列をファイル
- 3. WebRequest GetResponseStream読み込みバイト
- 4. Javaソケットからバイトを読み込む:ArrayIndexOutOfBoundsを取得する
- 5. ファイル内のバイトを読み取る:java.lang.NegativeArraySizeException
- 6. cファイルの読み込みバイト(ファイル内のすべての行)
- 7. binファイルから読み込み、TCLでバイトに分割する
- 8. asp.netでXMLファイルを読み込み、読み込みするMVC
- 9. javaでファイルの内容を読み込み、パラメータをチェックする
- 10. InputStreamバイトを読み取る
- 11. PHPでcsvファイルを読み込んで読み込み
- 12. .pemファイルから共通名を読み取る
- 13. C++ ifstream.read; nバイト未満のバイトを読み込みます。
- 14. C#ファイルを読み取り専用で読み取り/書き込みする
- 15. XML読み込みと値の取得
- 16. 読み込みファイルを
- 17. Unicodeファイルの読み込みUnicodeファイルの読み込み
- 18. 同じファイルへの読み込み/書き込み(gmon.outの取得)
- 19. 読み取り/書き込みバイト配列のAndroid
- 20. phpファイルを読み込んで指定したデータを取得
- 21. ファイルへの書き込みとパラメータなしのファイルからの読み取り
- 22. バイナリモードでファイルを読み込み、Cで
- 23. Android - イメージビューでバイト単位でイメージを読み込みます。
- 24. 読み込みが完了する前にHTMLからパラメータを取得する
- 25. Pythonのファイルからパラメータを読み込みます
- 26. FileReaderで複数のファイルを読み込み、filedatasの配列を取得
- 27. バイト配列をビットマップに読み込む
- 28. Cでバイトを読み取る方法#
- 29. ファイル読み込みと書き込み
- 30. ファイルをUTF-8エンコーディングで読み込み、バイト配列に変換する
「不良データ」を受け取ったということを意味しますか?エラーメッセージが表示されたら、完全なエラーメッセージをコピーして回答に貼り付けます。 –
RSAにパラメータ(D、Q、P、DQ ...)をインポートすると、「不良データ」が発生します。 DQの長さのdiffirenceの原因。通常、64バイトの長さのDQが必要ですが、この場合は63バイトです。 – thongqn