問題タブ [rsacryptoserviceprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - RSACryptoServiceProvider .NET クラスで公開鍵を指定する方法
デジタル署名で xml-doc に署名する必要があります。.NET でこれを行う方法があることは知っていますが、RSACryptoServiceProvider で独自の公開キーを指定する方法がわかりません。特別なキーワードに基づく公開鍵が必要です。これどうやってするの?お願い助けて。
.net - ストアからエクスポートできない秘密鍵をエクスポートする方法
Windowsストアから秘密鍵をエクスポートする必要があります。キーがエクスポート不可としてマークされている場合はどうすればよいですか?私はそれが可能であることを知っています、プログラム脱獄はこのキーをエクスポートすることができます。
Org.BouncyCastle.Security.DotNetUtilities.GetKeyPair()
キーをエクスポートするには、からキーをエクスポートするものを使用します(RSACryptoServiceProvider)cryptoProv.ExportParameters(true)
。Org.BouncyCastle.Cms.CmsSignedDataGenerator
CMS署名に使用するエクスポートされたキー。
.Netのソリューションが必要ですが、どのソリューションでも役に立ちます。ありがとうございました。
c# - RSACryptoServiceProvider でランダムな RSA キーを生成する
RSACryptoServiceProvider クラスを使用してランダムな RSA 公開鍵と秘密鍵 (RSAParameters) を生成するにはどうすればよいですか? RSACryptoServiceProvider の新しいインスタンスを作成するたびに、同じキーをエクスポートすることになります。
ありがとう
c# - Perl と .NET RSA は連携していますか? Perl 公開鍵から .NET で暗号化しますか? Perl から秘密鍵をロードしていますか?
サードパーティから公開鍵を取得するアプリケーションがあります。公開鍵は Crypt::RSA::Key を使用して Perl で生成されます。BigInteger クラスを使用して、このキーをロードし、秘密キーで復号化できるはずの値を暗号化できます。それを行うための私のコードは次のとおりです。
後で使用するためのプロパティの設定:
// ... をちょきちょきと切る ... //
コンストラクターでのプロパティの初期化:
// ... をちょきちょきと切る ... //
暗号化を行っています。テキストは暗号化する値です。retは返される私の値です:
このコードの大部分は、これがすべて機能すると主張する他の誰かのプロジェクトから引き出されたものです。残念ながら、実際の入力値を確認できません。
これは、無効な値がサード パーティに返されて失敗しています。
最初の質問- 上記のコードについて何かおかしなことはありますか?
第二に
サードパーティと話し、サードパーティから秘密鍵を取得して、これをデバッグしようとしました。完全な秘密鍵を読み込もうとすると失敗します。Perl のオブジェクト データと .NET RSAParameters の間のマッピングがわかりません。私が持っている重要なデータは次のとおりです。
'Version' => '1.91', 'Checked' => 0, 'Identity' => '私用のもの (2048)', 'private' => { '_phi' => '218..snip..380' , '_n' => '218..中略..113', '_q' => '148..中略..391', '_p' => '146..中略..343', '_u' = > '127..中略..655', '_dp' => '127..中略..093', '_dq' => '119..中略..413', '_d' => '190.. snip..533', '_e' => '65537' }, 'Cipher' => 'フグ' }, 'Crypt::RSA::Key::Private' );
RSAParameters オブジェクトへのマッピングは次のようになっていることがわかりました。
これらの値をロードすると (すべて上記と同じ方法で BigInteger クラスを使用します); 「Bad data」で失敗します。呼び出そうとするとエラーが発生します: rsa.ImportParameters(this.RsaParams);
このエラーのスタック トレースは次のとおりです。
質問のこの部分のアイデアはありますか?
最後に、私は主に VB.NET の開発者ですが、C# に関しては両方の方法を使用しており、かなり流暢に話せるように感じています。ただし、暗号化に関しては初心者です。
c# - オブジェクトはRSACryptoServiceProviderにすでに存在します
ソースコードをあるアプリケーションから別のアプリケーションにコピーしました。どちらも同じマシンで実行されています。また、両方のアプリケーションで、以下のcontainerNameに同じ文字列を使用しています。
新しいアプリケーションが他のアプリケーションに保存されたキーを読み取れない原因は何ですか?他のすべてのものは等しく、ログインしているユーザーアカウントなどです。
c# - PHP で暗号化された文字列から RSACryptoProvider を使用して復号化する場合の「Bad Data」
RSA を使用して PHP で暗号化された文字列を C# で復号化しようとしていますが、私の人生では正しく理解できません。問題を .NET と PHP の 2 つのサンプル テスト アプリに要約しました。
C# の場合:
これを初めて実行すると、出力されます(適切にフォーマットされています):
キーが実行間で正しく保存およびロードされることを確認しました。
次に、Crypt_RSA Packageを使用して PHP でこれを行います。
これにより、復号化された文字列が出力されます。
最後に、これを入力として C# アプリを再度実行すると、Decrypt メソッドを呼び出すと次の例外が発生します。
率直に言って、私はもう他に何を試せるか分からないところまで来ています。何がうまくいかない可能性があるか、他に何ができるかについての提案は大歓迎です。
c# - AndroidデバイスでC#によって生成されたデジタル署名を確認する
私は、C#プログラムによって生成された文字列が本物であることを確認したいAndroidアプリケーションを書いています(つまり、私が書いた別のアプリケーションによって生成された)。そのために、文字列に署名し、文字列と文字列のハッシュをAndroidデバイスに送信します。ハッシュされた文字列を作成するために使用される公開鍵をAndroidアプリケーションに含めることができるので、送信する必要はありません。これらすべてを生成するC#コードは、次のようなものです。
データを送信するには、次のコマンドを使用して署名をbase64としてエンコードします。
signignString = System.Convert.ToBase64String(signature);
キーパラメータからモジュラスとパブリック指数を手動で抽出しました。どちらもすでにBase64でエンコードされているようです。Androidアプリケーションで、次のように署名を確認しようとしています。
decodedBytes
元の文字列のSHA1ハッシュと比較すると、違いがあります。理由を理解しようとして、私は大量のログステートメントを使用してプロセスを進めました。モジュラスのBigIntegerは、C#コードで使用されるモジュラスとは異なるようです。同じことが指数でも起こります。私の疑惑は、これはJavaのバイト型が符号なしであるためだということですか?
したがって、2つの質問:
1)私は何を間違っている(またはしていない)のですか?署名を検証するために、あるデバイスから別のデバイスにモジュラスと指数を手動で移動する方法はありますか?
2)より適切な抽象化レベルで機能する、私が目指していることを達成する方法はありますか?
c# - x509Certificate2 から RSACryptoServiceProvider を開始する最良の方法は?
キー ストアから引き出しRSACryptoServiceProvider
た I から新しいオブジェクトを開始する最良の方法は何ですか? X509Certificate2
証明書は、公開鍵 (暗号化用) と秘密鍵 (復号化用) の両方に関連付けられています。
私は現在この方法を使用してFromXmlString
いますが、もっと良い方法があるはずです。
ありがとう
c# - 公開鍵と秘密鍵のペアを生成し、asp.netのテキストボックスに表示します
どんな体でもRSAParametersのパラメータを説明できます私はp、d、e、qなどのパラメータを見ました...私はそこから秘密鍵と公開鍵が必要です
リンクを取得しました
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters%28v=vs.90%29.aspx [^]
私はサンプルコードを次のように使用しています。サンプルコードが正しいかどうかは誰でも言うことができます。
彼らは、公開鍵が{e、n}であり、n =(P * Q)の結果であるとして与えました。秘密鍵は{d、n}であり、n =(P * Q)の結果です。
公開鍵と秘密鍵のサンプルコードで私が行ったのは正しいかどうかです
どうもありがとう
c# - C# RSACryptoServiceProvider ToXmlString()/FromXmlString()
EDIT2: Convert.FromBase64String が私の救世主のようです。コンマがそのような文字列に含まれるかどうかは誰にもわかりませんか? 私は基本的なcsv解析を行っています。もしそうなら、私はいつでも引用符を使うことができます(しかし、引用符はこのような文字列にもあると思います)が、これは自分にとって小さなプロジェクトなので、「、」で分割することで簡単に解析できます.
編集:私の問題は、暗号化されたバイトを文字列に変換し、その文字列をバイトに戻して復号化することです。暗号化された文字列を実際にどこかに保存し、その文字列を解読できるようにしたいので、どうすればよいでしょうか。
後で同じファイルを読み取れるように、公開鍵 (およびテスト用の秘密鍵) を xml ファイルに保存しようとしていますが、復号化しようとすると「Bad data」エラーが発生します。誰かが私が間違っていることを見ることができますか?
}