この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 2344|答える: 3

[出典] バックエンドをRSAアルゴリズム( NET)を復号化

[リンクをコピー]
2024年9月6日 08:44:03 に投稿 | | | |
要件:プロジェクト内のユーザーの元のパスワードはバックエンドに渡されなければなりません。なぜなら、バックエンドはパスワードでサードパーティインターフェースを呼び出す必要があるからです。 パスワードが平文でうまく送信されない場合、パケットキャプチャツールに検出された場合、パスワードは漏洩してしまいます。 最終的にRSAアルゴリズムが採用され、フロントエンドが公開鍵でパスワードを暗号化し、バックエンドが秘密鍵で復号しました。

フロントエンドはjsencryptパッケージ、アドレスを使用します:ハイパーリンクのログインが見えます。

バックエンドが.NET 5以上であれば組み込み関数を利用できますが、そうでない場合は以下のパラメータを使用してください。

.NET/C# RSA PEM フォーマットの暗号化および復号化
https://www.itsvse.com/thread-10602-1-1.html

まず、opensslを使って公開鍵とプライベート鍵を生成します。この記事はLinux上で直接実行されます(Windowsシステムでopensslをダウンロードしてインストールしてください)。コマンドは以下の通りです:



猫rsa_1024_priv.pem
-----RSA秘密鍵開始-----
MIICXAIBAAKBgQDTyd/KP2JuidA0JA+7i8FCzKCdn2Gq/ChfLpnBFcHb9vKgZb6n
aK2UXynpTbO6l5CVU4KG7w/hUJgxUQsSzNIsnPQuNpop/FO9doiV5l/94Hcuj17f
2AAEQGkWC8EvZBoMDr2JRVDBEji3l6mHXmTduCjH7VpuQyJRGHzWQu8HnwIDAQAB
AoGARat4Ifkd8U0Gn9BpGIIN7mKQR6nhoDTZNw6GZ903a5veDuPJhxrJVzDDAcuc
3znyxxy0qJzF9ZHkrvyBDwsv7AGyVfg6fwwLxvrsJS1MpwKLY3yqbPVk3hnaOECO
915XcbkVua+DGVjwtyX37CxPuSDaH2ut+kIQ3xci+BreSpkCQQD3FfgYELZgrHDk
JQaSiILCnFbld+NBuTm4CHPCN+XDZwzvC8sH4M9my7kznxAQosHbm+aGaOK1k4+k
zKgaiJzVAkEA223oSa7UMyMf/K/dEFmGjKBWQYP7gjLxcsxDHdwTpKHBEuZ32IT2
nuvYxsaOATqg8WABAJHWmT2Rj/joeAx8owJBANaLovLygAoNcbEIXV6bXj8xlVqG
8TO+a9narPk1pDI5psdijBb5I930g4nJUh+/02inRFHtfP2Bdbb5ZfY0LUkCQDxJ
iCamaBrcra8pSl1xm2wLqWc6seFlyby2rkIH80WqQ3fD5m2QqomjVt3WM7HWv91R
eTUE3KchqVqbEpPZKm0CQD7VMRAb1NNH+BNjuGxZB3AQSJvRXhpJ+w3ckSP6IX0L
N0OoHtvH5lvtm7hfB5nDUBYhqN3wj7wDNiK9Vrdyqow=
-----RSA秘密鍵終了-----
猫rsa_1024_pub.pem
-----公開鍵開始-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTyd/KP2JuidA0JA+7i8FCzKCd
n2Gq/ChfLpnBFcHb9vKgZb6naK2UXynpTbO6l5CVU4KG7w/hUJgxUQsSzNIsnPQu
Npop/FO9doiV5l/94Hcuj17f2AAEQGkWC8EvZBoMDr2JRVDBEji3l6mHXmTduCjH
7VpuQyJRGHzWQu8HnwIDAQAB
-----公開鍵終了-----

以下のソースコードで新しいindex.htmlウェブページを作成しましょう:

観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ答える


以下のソースコードで新しい.NET 8コンソールアプリケーションを作成してください:


ブラウザでindex.htmlウェブページを開き、暗号化をテストし、.NETアプリケーションで復号します。以下の図に示されています。



注意:非常に長い文字列の暗号化と復号の両方は失敗し、分割された暗号化と復号化が必要です。 詳細については、以下を参照してください:ハイパーリンクのログインが見えます。

(終わり)




先の:Dockerは最新の特定(対応する)バージョンのイメージを監視します
次に:Jenkins (7) Linux サーバーが Jenkins バージョン 2.462.1 をビルド
 地主| 2024年10月14日 15:51:48に投稿 |
2048桁の公開鍵と秘密鍵を生成します

 地主| 2024年10月14日 17:10:13に投稿 |
もう一つのフロントエンドRSA暗号化・復号ライブラリであるnode-forgeは、TLSプロトコルをJavaScriptで完全にネイティブに実装したものであり、一連の暗号ユーティリティと大量のネットワークリソースを活用するウェブアプリケーション開発のためのツールセットです。

https://www.npmjs.com/package/node-forge

すでにAngularで使われており、npmで以下のようにインストールされています:

フロントエンドのコードは以下の通りです:

バックエンドの.NETコード:



 地主| 2024年10月16日 08:23:58 に投稿 |
RSAは最大データサイズを暗号化します
ハイパーリンクのログインが見えます。


RSA暗号化アルゴリズムでは、符号化される最大ブロックサイズは選択した鍵長に依存します。 一般的に、RSAキーの長さは1024ビット、2048ビット、または4096ビットのままです。

1024ビットキーの場合、最大ブロックサイズは117バイトです。 つまり、1024ビット鍵を使う場合、最大117バイトのデータブロックを暗号化できます。

2048ビットキーの場合、最大ブロックサイズは245バイトです。 つまり、2048ビットの鍵を使う場合、最大で暗号化できるデータブロックは245バイトになります。

4096ビット鍵の場合、最大ブロックサイズは512バイトです。 つまり、4096ビット鍵を使うと、暗号化できる最大データブロックは512バイトになります。

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com