問題タブ [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.

0 投票する
1 に答える
1960 参照

java - ファイル プライバキー ファイル タイプをロードする方法は pem です

プライベート (private.pem) をロードします。コードは次のとおりです。

エラー: 原因:

ありがとう。

0 投票する
1 に答える
764 参照

c# - openssl_public_decrypt を使用した RSA 署名の検証が .NET 署名付き文字列で失敗する

X509Certificate2 と RSACryptoServiceProvider を PHP OpenSSL コマンドと一緒に使用して、双方向の相互セキュリティを実装しようとしています。

PHP から C# にメッセージを送信しても問題ないようです。.NET サーバー上の RSACryptoServiceProvider は、独自の秘密鍵を使用してメッセージを復号化し、PHP サーバーの公開鍵を使用して署名を検証できます。

しかし、逆に .NET から PHP に移行すると、「openssl_public_decrypt」を使用して .NET サーバーの署名を検証する際に問題が発生します。false を返すだけです。'openssl_private_decrypt' は正常に機能し、暗号化されたデータを PHP サーバーの秘密鍵で復号化します。

openssl (.key および .crt) を使用して両方のサーバー用の RSA (2048) 自己署名証明書を作成し、.NET コードで秘密鍵として使用する .pfx を作成しました。

ここで何が問題なのか疑問に思っています。.NET サーバーと PHP サーバーの両方で、暗号化/復号化のデフォルト設定を使用しています。.pfx で何かを暗号化した場合、暗号化/復号化メカニズムは同じではありませんか? または、openssl_public_decrypt は、RSACryptoServiceProvider が提供するものとは異なる暗号化を期待していますか?

問題がどこにあるのかよくわからないので、どんな助けも素晴らしいでしょう。

0 投票する
1 に答える
2548 参照

c# - RSACryptoProvider を使用して C# で PHP OpenSSL 署名を検証する

C# を使用してOpenSSL署名を検証しようとしています。正しい公開鍵証明書を使用して false を返しています。(created using openssl_sign with SHA1 in PHP)RSACryptoProvider.VerifyData

これを成功させる方法について何か考えはありますか?

編集:

次のコードで BouncyCastle を使用して OpenSSL SHA1 署名を検証しようとしましたが、検証に失敗しています。署名の計算方法は異なりますか? .NET で検証可能な OpenSSL で署名を作成するにはどうすればよいですか?

PHP コード:

0 投票する
2 に答える
268 参照

c# - C# での証明書からの公開鍵の抽出

x509 v.3 証明書から秘密鍵を取得してRSACryptoServiceProviderクラスに保存するにはどうすればよいですか?

0 投票する
1 に答える
3750 参照

encryption - C#で公開鍵と秘密鍵のペアを生成し、公開鍵をプレーンテキストとして保存する

C# アプリケーションとマイクロ コントローラー (pic32mx795) の間で暗号化を実装する必要があります。私が抱えている問題は、RSACryptoServiceProvider を使用している公開鍵と秘密鍵のペアを生成することですが、完全な公開鍵ではなく鍵属性しか取得できません。

マイクロコントローラーはキーのみを (バイトとして) 受け取るため、キーパラメーターをマイクロコントローラーに提供することはできません。これを実行できるライブラリがありますが、2012 年 11 月にのみ利用可能になります ( SW300055 )。SW300052 ライブラリを使用して、マイクロコントローラーで暗号化を実行しています (キー サイズは 256 ビットに制限されています)。

また、このスレッドで bouncycastle の提案を試みました (キーを生成し、テキスト ボックスに表示します)。キーは PEM 形式で保存されます。私が理解していることから、キーはbase64形式で保存されています。キーの長さを 256 ビットに指定しましたが、公開キーをバイトに戻すと、62 バイトになります。

Microsoft の Strong Name ツール (sn.exe) も調べましたが、サポートされる最小キー サイズは 384 ビットです。

公開秘密鍵ペアを生成し、c# を使用して (または他のツールを使用して) プレーン テキスト/バイトで公開鍵を取得する方法はありますか? セッションキーを暗号化するために対称キー暗号化を使用した方がよいのでしょうか?

0 投票する
0 に答える
643 参照

c# - RSACryptoServiceProvider.SignData() によって作成された署名を復号化してハッシュを取得する

RSACryptoServiceProviderクラスSignDataSignHashメソッドで作成されたハッシュを取得しようとしています。ハッシュチェーンの一部であるため、後で取得する必要がある暗号化されたハッシュを保存できるようにするために、これが必要です。

最初は、暗号化に秘密鍵を使用して手動でハッシュを暗号化および復号化したかったのですが、ライブラリでは許可されていません。

これを行う方法が見つかりません。すべての検索で、秘密鍵の暗号化がいかに悪い考えであるかについての回答が返されました (署名に使用しない場合...)。

0 投票する
2 に答える
5156 参照

c# - 秘密鍵 (RSA) を使用した文字列の復号化

私は公開鍵と秘密鍵、そして解読したい文字列を持っています。

公開鍵の形式は次のとおりです。

秘密鍵の形式は次のとおりです。

解読したい文字列は公開鍵を使用して暗号化されているため、秘密鍵を使用して解読する必要があります。

私はこれをどうやって行うのだろうと思っていました。

私はこれを調査してきましRSACryptoServiceProviderたが、暗号化/復号化では、キーがモジュラスと指数を備えた XML 形式であることを望んでいるようです。

私の質問は、私が持っているデータを使用してモジュラスと指数を使用して XML 形式を生成する方法があるか、または私が持っているデータを使用して文字列を復号化できる別の方法があるかどうかです。

0 投票する
1 に答える
239 参照

windows-8 - クラウドでの ASHWID (HardwareToken) の検証に関する問題

HardwareIdentification.GetPackageSpecificToken によって発行された HardwareToken を Azure (.net 4.5) サービスで検証しようとしています。公式のガイダンスに従いました。しかし、私は最後のチェックで立ち往生しています。署名のチェックが常に失敗する理由がわかりません (証明書チェーンのチェック、重み付けされたハードウェア トークンの比較、ルート証明書の publicKey の照合など、他のすべてのチェックは正常に機能しています)。

署名の検証を実行するために使用しているコードは次のとおりです。

私も同じ結果で VerifyData を使用しようとしましたが、常に False を返します (ナンスを使用するかどうかに関係なく)。

ここに非常に基本的なサンプル プロジェクトをアップロードしました: https://github.com/sandorfr/sandor/tree/master/W8/HardwareTokenSample

誰かがこの問題に直面/解決しましたか?

よろしくお願いします、

0 投票する
2 に答える
22821 参照

c# - RSACryptoServiceProviderは、独自の公開鍵と秘密鍵で初期化します

RSACryptoServiceProviderを自分の公開鍵と秘密鍵で初期化しようとしています。

私が調査できる限り、これを行う方法は、コンストラクターを次のように呼び出すことです。

上記のcspParams。ただし、msdnの使用例を見ると、http: //msdn.microsoft.com/en-us/library/ca5htw4f.aspx

彼らが秘密鍵または公開鍵を設定する場所は見当たりません。KeyContainerのみを使用します。cspParamなしでRSACryptoServiceProviderを作成すると、デフォルトでは公開鍵のみを使用するように設定されます。クラス自体のPublicOnly変数をチェックすると、これに気付きます。これは読み取り専用変数です。

私の質問は、このクラスを初期化してから、独自の秘密鍵と公開鍵を設定する方法です。サーバーは秘密鍵を使用し、クライアントは公開鍵を使用します。

私が見つけたのは、RSAParameterオブジェクトを作成し、そのオブジェクトに.Exponentパラメーターと.Modulusパラメーターをそれぞれパブリック変数とプライベート変数として設定することです。

しかし、RSACryptoServiceProviderが正しいコンストラクターで初期化されていないと思われるため、 「MissingPrivateKey」エラーが発生します。

以下は私のコードの一部です。BigIntegerクラスについて心配する必要はありません。これは単なる実験です。使用してもしなくても同じエラーになります。

0 投票する
0 に答える
551 参照

.net-4.0 - RSACryptoServiceProvider.ImportParameters ObjectDisposedException

着信リクエストに署名してさらに送信したいWebサービスがあります。System.Security.Cryptography.RSACryptoServiceProviderの静的オブジェクトを使用しており、すべてのインスタンスが同じ静的オブジェクトを使用して署名しています。私はマイクロソフトで、静的オブジェクトがこのクラスに対してスレッドセーフであることを読みました。

問題は、Webサービスの負荷が高い場合、以下の例外を除いて署名が失敗することです。