私は暗号化ライブラリを使うことはありませんが、私は秘密鍵で文字列を暗号化し、公開鍵で解読したいと思います。どのように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. 秘密鍵を秘密鍵で暗号化する
- 4. ブラウザベースの暗号化/復号化の秘密鍵でブラウザキーストアから
- 5. JavaのRSA秘密鍵で暗号化
- 6. 暗号化された秘密鍵と暗号化された文字列の復号化
- 7. Lotus Dominoのメールの暗号化と復号化のための秘密鍵と公開鍵の取得
- 8. 公開鍵/秘密鍵を生成する前にRSA暗号化forceclosing
- 9. AWS CLI暗号化秘密鍵
- 10. 逆のRSAを使用してライセンスコードを復号化する:秘密鍵で暗号化し、公開鍵で復号する
- 11. rsaで公開鍵だけで暗号化と復号化する方法C#
- 12. 復号化パスフレーズ保護PEM秘密鍵
- 13. RSA公開鍵を使用したAndroid暗号化文字列
- 14. PHPでRSA秘密鍵でデータを暗号化するには?
- 15. PFXファイルから秘密鍵を読み取り、その秘密鍵で暗号文を復号する
- 16. Ethereum秘密鍵を使用して文字列を暗号化する
- 17. 生成されたRSA秘密鍵を暗号化してCで復号化する方法
- 18. .NETでの公開鍵暗号化とJavaによる復号化
- 19. は、エンドツーエンドの暗号化では、Aの秘密鍵は、B
- 20. Web暗号化APIで秘密鍵を使用してデータを暗号化する方法
- 21. Python:Pycrypto RSA公開鍵暗号化エラー
- 22. RSA暗号化と復号化は、opensslによる秘密鍵でのみ正しいですか?
- 23. PythonでRSA秘密鍵を使ってデータを暗号化する方法は?
- 24. 秘密鍵は暗号化されているときに異なる結果を与える秘密鍵を復号化しますか?
- 25. Androidで自分の鍵で文字列を暗号化/復号化する方法は?
- 26. インポート文字列GoでRSA暗号化を使用するRSA公開鍵
- 27. golang sshで暗号化された秘密鍵を使用する方法
- 28. 迅速なナトリウム秘密鍵を使用した復号化
- 29. 暗号化/復号化鍵管理とは何ですか?
- 30. 同じ秘密鍵を使用して暗号化と復号化を行いますか?
RSAで任意の文字列を暗号化しないでください。ランダムに生成された**正しく埋め込まれた**対称鍵をRSAで暗号化する必要があります。 – CodesInChaos
@ CodeInChaos:私はそれがRSAがほとんどの時間使用されていることに同意しますが、RSAの使用はこれに限定されません。 –
AFAIK RSAは、アンパディングされていない任意の文字列を暗号化するためには安全ではありません。 – CodesInChaos