私は暗号化ライブラリを使うことはありませんが、私は秘密鍵で文字列を暗号化し、公開鍵で解読したいと思います。どのようにC#でこれを達成する。小さなコードスニペットで私を助けてください。 ありがとう秘密鍵で文字列を暗号化し、公開鍵で復号化する方法は?
答えて
AFAIK公開鍵と秘密鍵の間には数学的な違いはありませんが、セキュリティ上の理由から一貫して使用する必要があります。
あなたは秘密鍵で暗号化し、公開鍵で復号化することを求めています。これは一般的に間違った方法です。この方向に進みたいのであれば、通常は「デジタル署名する」という操作です。
公開鍵公開鍵で元に戻すことができるように秘密鍵で署名した場合、実際には秘密ではありません。私はあなたが正当に送信者からメッセージを認証しようとしていると仮定します。あなたが必要とするのはデジタル署名です。これはまだ公開鍵 - 秘密鍵(または "非対称")鍵で実行されます。
デジタル署名では、メッセージ自体は秘密ではありません(公開鍵を持つ人は誰とも暗号化を解除できるので、必要ありません)。メッセージに基づいて、公開鍵を使用して検証可能な追加データが添付されます。一致する秘密鍵を持つ人によってのみ計算されています。
次のようになります。今すぐキーを取得する場所を把握するだけです。
static byte[] GenerateDigitalSignature(byte[] data, RSAParameters asymmetricKey)
{
using (var rcsp = new RSACryptoServiceProvider())
using (var cp = new SHA1CryptoServiceProvider())
{
rcsp.ImportParameters(asymmetricKey);
return rcsp.SignData(data, cp);
}
}
これはデータに署名するだけです。それはそれを暗号化しません。 –
うわー............ –
- 1. C#での公開鍵暗号化と秘密鍵暗号化の使い方
- 2. ブラウザベースの暗号化/復号化の秘密鍵でブラウザキーストアから
- 3. JavaのRSA秘密鍵で暗号化
- 4. Lotus Dominoのメールの暗号化と復号化のための秘密鍵と公開鍵の取得
- 5. 公開鍵/秘密鍵を生成する前にRSA暗号化forceclosing
- 6. AWS CLI暗号化秘密鍵
- 7. 逆のRSAを使用してライセンスコードを復号化する:秘密鍵で暗号化し、公開鍵で復号する
- 8. .NETでの公開鍵暗号化とJavaによる復号化
- 9. Web暗号化APIで秘密鍵を使用してデータを暗号化する方法
- 10. Python:Pycrypto RSA公開鍵暗号化エラー
- 11. 秘密鍵は暗号化されているときに異なる結果を与える秘密鍵を復号化しますか?
- 12. Gpg4winコマンドラインを使用して公開鍵でバッチ暗号化
- 13. 公開鍵と秘密鍵ファイル(.pkr、.skr)
- 14. 公開鍵/秘密鍵の再利用
- 15. opensslのRSA秘密鍵と公開鍵
- 16. アップルキーホルダー公開鍵/秘密鍵の問題
- 17. RSA公開鍵と秘密鍵のバックアップ
- 18. 公開鍵を使って暗号化するには?
- 19. KeyStoreに秘密鍵と公開鍵を格納する方法
- 20. PHP環境で暗号化用の秘密鍵を格納する場所
- 21. 私の公開鍵でphp連絡フォームを暗号化
- 22. 暗号化された認証の秘密鍵は必要ですか?
- 23. 文字列の暗号化/復号化に最適なアルゴリズムと鍵の格納方法
- 24. 対称鍵暗号化アルゴリズム
- 25. 暗号化 - 対称鍵
- 26. Iphone - 公開鍵でNSDataを暗号化し、秘密鍵で解読するにはどうすればいいですか?
- 27. 公開鍵と秘密鍵は交換可能ですか?
- 28. 秘密鍵と公開鍵をJavaの鍵ストアから読み取る方法
- 29. Node.js暗号を使用して秘密/公開鍵ペアを作成する方法は?
- 30. JavaScript文字列の暗号化と復号化ですか?
RSAで任意の文字列を暗号化しないでください。ランダムに生成された**正しく埋め込まれた**対称鍵をRSAで暗号化する必要があります。 – CodesInChaos
@ CodeInChaos:私はそれがRSAがほとんどの時間使用されていることに同意しますが、RSAの使用はこれに限定されません。 –
AFAIK RSAは、アンパディングされていない任意の文字列を暗号化するためには安全ではありません。 – CodesInChaos