以下是網路傳輸中常用的幾種加密方式:
(學習影片分享:程式設計影片)
#提示:這些加密涉及明文傳輸的,需要在https協定上加密傳輸。
1、金鑰雜湊
採用MD5或SHA1等雜湊演算法,對明文進行加密(這裡的加密只對人,不對機器,因為這些演算法機器可以用對應演算法算出來)
優點:防篡改
適用情境:普通檔案下載
缺點:不具備安全性,可認證性
2.對稱加密
優點:安全性、可認證
適用場景:收發方數量固定,金鑰使用物件少
缺點:BS網路傳輸關係,金鑰過多難維護,除非對金鑰進行加密傳輸
3、非對稱加密
3.1、接收者傳送公鑰(保證資料完整性)
#前提:首次通訊時發送方接收了接收方的公鑰,並保存在本地
3.2、發送方發送公鑰(保證發送方認證)
前提:首次通訊時接收方接收了發送方的公鑰,並保存在本機
4、數位簽章
適用場景:登入認證
缺點:不具備足保密性速記
對稱演算法
對稱演算法(SymmestricAlgorithm).Create ()=>
Provider.CreateEncryptor()
Provider.CreateDecryptor()
CryptoStream(encryptedSteam,enStreamyptor,CryptoStream.Write)/yptoStreamMode. /加密準備讀取空encryptedSteam準備寫入
CryptoStream(encryptedSteam,decryptor,CryptoStreamMode.Read)//解密準備寫入密文流encryptedSteam準備被讀取
#非對稱加密
#非對稱加密(ASymmistricAlgorithm):
Provider provider
provider.ToXmlString(true);//取得公私鑰對
provider.ToXmlString(false);//取得公鑰
provier .FromXmlString(publicKeyXml);
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();
以上是網路安全中常用的幾種加密方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!