下面介紹幾種網路傳輸加密方式:
注.這些加密涉及明文傳輸的,需要在https協議上加密傳輸
1.金鑰雜湊
採用md5或者sha1等雜湊演算法,對明文進行加密(這裡的加密僅對人,不對機器,因為這些演算法機器可以用對應演算法算出來)
2.對稱加密
優點:安全、可認證
適用場景:收發方數量固定,金鑰使用物件少
缺點:bs網路傳輸關係,金鑰過多難維護,除非對金鑰進行加密傳輸
3.非對稱加密
3.1接收方傳送公鑰(保證資料完整性)
前提:首次通訊時傳送方接收了接收方的公鑰,並儲存在本地
3.2傳送方傳送公鑰(保證傳送方認證)
前提:首次通訊時接收方接收了傳送方的公鑰,並儲存在本地
4.數字簽名
適用場景:登入認證
缺點:不具備足保密性
對稱演算法
對稱演算法(symmestricalgorithm).create()=>
provider.createencryptor()
provider.createdecryptor()
cryptostream(stream stream,icrytotransform transform,cryptostreammode mode):
cryptostream(encryptedsteam,encryptor,cryptostreammode.write)//加密 準備讀取 空encryptedsteam準備被寫入
cryptostream(encryptedsteam,decryptor,cryptostreammode.read)//解密 準備寫入 密文流encryptedsteam準備被讀取
非對稱加密
非對稱加密(asymmistricalgorithm):
provider provider
provider.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 =
newdescryptoserviceprovider()
;//使用des加密
byte
bytescontent = encoding.utf8.
getbytes
(sendcontent)
; memorystream ms =
newmemorystream()
; cryptostream cs =
newcryptostream
(ms, des.
createencryptor
(bytekey, byteiv)
, cryptostreammode.write)
; cs.
write
(bytescontent,
0, bytescontent.length)
; cs.
flushfinalblock()
;
網路安全,加密技術
對稱加密技術 優點,效率高,缺點,私鑰不適合在網上傳輸,金鑰維護麻煩 非對稱加密技術 公鑰加密,私鑰解密 私鑰加密,公鑰解密 公私鑰來歷,作業系統根據給出的一串隨機數,通過某個函式運算產生乙個金鑰對,公鑰和私鑰,公鑰只能加密,私鑰負責解密 以私鑰解密為例,1我把私鑰儲存好,把公鑰給別人,別人就能給我...
網路安全 非對稱加密
公開金鑰密碼演算法也叫雙金鑰密碼演算法或非對稱金鑰密碼演算法,它的加密金鑰與解密金鑰不同。這種演算法需要形成乙個在數學上是相關聯的金鑰對 乙個公鑰和乙個私鑰 使用其中乙個金鑰加密資料,用另乙個金鑰來解密。公鑰可以公開傳遞,不需要安全通道,但與之對應的私鑰必須保密。在圖1中,發件人用收件人的公鑰加密了...
網路安全 非對稱加密
公開金鑰密碼演算法也叫雙金鑰密碼演算法或非對稱金鑰密碼演算法,它的加密金鑰與解密金鑰不同。這種演算法需要形成乙個在數學上是相關聯的金鑰對 乙個公鑰和乙個私鑰 使用其中乙個金鑰加密資料,用另乙個金鑰來解密。公鑰可以公開傳遞,不需要安全通道,但與之對應的私鑰必須保密。在圖1中,發件人用收件人的公鑰加密了...