ネットワーク送信で一般的に使用されるいくつかの暗号化方式を次に示します:
(学習ビデオ共有: プログラミング ビデオ)
ヒント: これらの暗号化にはプレーン テキストの送信が含まれるため、https プロトコルを介して暗号化して送信する必要があります。
1. キー ハッシュ
MD5 や SHA1、その他のハッシュ アルゴリズムを使用してプレーン テキストを暗号化します (これらのアルゴリズムとマシンは対応するアルゴリズムを使用できるため、ここでの暗号化はマシンではなく人間のみを対象とします)計算してください)
利点: 改ざん防止
適用可能なシナリオ: 通常のファイルのダウンロード
欠点: セキュリティなし、認証可能
2. 対称暗号化
利点: 安全で認証可能
適用可能なシナリオ: 固定数の送信者と受信者、少数の鍵ユーザー
欠点: BS ネットワークの送信関係、鍵が多すぎる
#3.1. 受信者は公開鍵を送信します (データの整合性を確保するため)
前提:送信者は最初の通信中に受信者の公開鍵を受け取り、それをローカルに保存します
3.2. 送信者は公開鍵を送信します (送信者の認証を保証します)
前提: 受信者は最初の通信中に送信者の公開キーを受信し、それをローカルに保存します。
4、デジタル署名
##該当するシナリオ: ログイン認証
欠点: 機密性が不十分
短縮形
対称アルゴリズム
Symmestric Algorithm.Create ()=>
Provider.CreateEncryptor()Provider.CreateDecryptor()
CryptoStream(ストリーム ストリーム,ICrytoTransform 変換,CryptoStreamMode モード):
CryptoStream(encryptedSteam,encryptor,CryptoStreamMode.Write)/ /暗号化は空を読み取る準備ができています encryptedSteam は書き込む準備ができています
CryptoStream(encryptedSteam,decryptor,CryptoStreamMode.Read)//復号化を暗号文ストリームに書き込む準備ができました encryptedSteam を読み取る準備ができました
非対称暗号化
非対称暗号化 (ASymmisticAlgorithm) :
プロバイダ Providerprovider.ToXmlString(true);//公開鍵と秘密鍵のペアを取得します
provider.ToXmlString(false);//公開鍵を取得します
provier .FromXmlString(publicKeyXml) ;
provier.FromXmlString(privateKeyXml);
provider.Encrypt();
provider.Decrypt();
例:
対称暗号化:
string key = "abc"; string sendContent="你好!"; var byteKey = Encoding.UTF8.GetBytes(key); var byteIV = Encoding.UTF8.GetBytes(key);//加密算法初始化向量 DESCryptoServiceProvider des = new DESCryptoServiceProvider();//使用des加密 byte[] bytesContent = Encoding.UTF8.GetBytes(sendContent); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byteKey, byteIV), CryptoStreamMode.Write); cs.Write(bytesContent, 0, bytesContent.Length); cs.FlushFinalBlock();
関連する推奨事項:
Web サイトのセキュリティ チュートリアル以上がネットワーク セキュリティで一般的に使用される暗号化方式は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。