-8

以前sn.exeは、キーペア(秘密キーと公開キー)を生成していました。次のように、秘密鍵から公開鍵を抽出します。

sn -p keyPair.snk publicKey.snk

C#を使用して読み取り、データの暗号化に使用するバイナリとしてデータベースに保存します。

使用せずにC#の秘密鍵から公開鍵を抽出する方法はありますsn.exeか?

byteデータベースに保存している公開鍵と比較するための公開鍵が必要です。

4

1 に答える 1

10

sn.exeを使用せずにC#で秘密鍵から公開鍵を抽出する方法はありますか?

それを行うのは驚くほど難しいですが、可能です。私はそうしました。

必要なことは、mscorwks.dll の StrongNameGetPublicKey に p/invoke することです。

C# を使用して読み取り、データの暗号化に使用するバイナリとしてデータベースに保存します

これは非常にまずい考えです。厳密な名前の公開鍵の目的は、データを暗号化することではありません! 厳密な名前の公開キーの目的は、提供したアセンブリが自分によって作成されたことを顧客が確認できるようにすることです。そのタスク以外に公開鍵を使用している場合は、非常に間違ったことをしているので、すぐに使用を中止する必要があります。

厳密な名前は暗号化を使用しますが、暗号化テクノロジではありません。これらは、コード アクセス セキュリティ ポリシーの評価を目的とした証拠生成テクノロジです。

于 2012-04-18T19:37:44.477 に答える