安全是許多應用的關鍵。提供認證和授權服務僅僅是整個安全系統的一部分。當數據在應用系統中使用、傳輸,它會如何呢?這就是密碼學之所以由來的原因。密碼學本身是一個很大的論題。在接下來的文章中,我們僅僅討論.net framework及其提供的密碼加密類。
為什么要用加密系統?
大多應用系統提供了安全特征,比如登錄框、基于角色的認證等。然而當一些人如果截取了網絡中的數據怎么辦?或某人偽造傳送在網上的數據?如果某人打開了存儲密碼的數據庫?密碼系統將提供我們解決問題的方法。使用.net framework加密類,你可以將流動在你系統中的數據加密,當認證的用戶需要讀取或修改時再解密數據。簡而言之,密碼系統具有下面的特征:
。保護數據不被第三方讀取
。保護數據不被其它方修改
。保證數據正確到達目的地
密碼類的類型:
在.net framwork個可用的加密類型包括下面幾個:
。密鑰加密類
。公鑰加密類
。數字簽名類
。哈希加密類
所有加密相關的類可以在system.security.cryptography名稱空間中找到。
=密鑰加密=
在密鑰加密中,數據被一個唯一的密鑰加密。這個密鑰只有信息的接收和發送方知道。發送方使用密鑰加密,接收方使用同一密鑰解密。
.net framework提供以下幾個類處理密鑰加密。
descryptoserviceprovider 
rc2cryptoserviceprovider 
rijndaelmanaged 
tripledescryptoserviceprovider 
:公鑰加密:
和密鑰加密不同,公鑰加密使用兩個密鑰。一個叫做公鑰一個是私鑰。公鑰是對外公開的,私鑰則被這個密鑰的擁有者保存著。被密鑰加密的數據只能被相應的公鑰解密。同樣,被公鑰加密的數據只能被相應的私鑰解開。
自然地,為了加密你要傳送的數據,你需要使用公共密鑰。而它只能被相應的私有密鑰解開。
.net framework提供了以下類處理公共密鑰加密。
dsacryptoserviceprovider 
rsacryptoserviceprovider 
==數字簽名==
數字簽名被用在確認發送者的身份及保證數據的完整。它經常和公共鑰匙加密一起使用。數字簽名工作如下:
。發送者使用哈希算法對要發送的數據產生一個信息摘要,這個摘要簡單描述了要發送的數據。
。發送者使用私有密鑰加密信息摘要從而得到一個數字簽名。
。發送者通過安全渠道將數據發送出去。
。接收方收到數據,并使用公共密鑰解密數字簽名重新得到信息摘要。
。接收方應用相同的哈希算法創建一個新的信息摘要。
。如果發送方的信息摘要與招收方的信息摘要一致,則說明信息來自正確的地方。
dsacryptoserviceprovider 與 rsacryptoserviceprovider 類用來創建數字簽名。
哈希加密==
哈希算法為給定可變長度的數據創建固定長度的輸出。如果源數據改變,則產生不同的哈希值。它常常和數字簽名一起使用。
.net中提供了下面幾個哈希類。
sha1managed 
md5cryptoserviceprovider 
mactripledes 
隨機數生成器
在密碼系統中,你可能多次需要產生密鑰,隨機數生成器可以滿足要求。在.net中rngcryptoserviceprovider產生這樣的隨機數。
下一篇文章將介紹密鑰加密幾個類的使用
新聞熱點
疑難解答
圖片精選