數據加密總結進階(1)

 很多的運用提供了諸如登錄窗體和基於角色的安全特性。然而,如果有人在數據通過網絡傳輸過程中攔截了它時,或有人打開你存儲着重要的密碼信息的數據庫時,你怎麼辦呢?加密類提供瞭解決這些問題的解決方案。Net框架中的加密類能讓你加密在系統中或網絡上傳輸的數據,並且只要你是論證過的用戶你還能解密這些數據甚至修改它。簡而言之,加密類提供了下面的特性:

避免數據被第三方非法讀取 避免數據被非法修改 保證數據能傳輸到指定接收方

Net框架中的加密類可分爲四類:

密鑰加密類,也被稱作“對稱加密” 公鑰加密類,也被稱作“非對稱加密” 數字簽名類,也被稱作“簽名加密” 哈希值加密類

所有這些加密類都能在System.Security.Cryptography 命名空間中找到。

Secret Key Encryption 密鑰加密

使用密鑰加密的方法,數據只用一個單一的密鑰進行加密來保護數據的安全。這個密鑰僅僅只有發送者和接收者知道。發送方用密鑰加密數據,接收方用同樣的密鑰解密數據。保證密鑰的隱密是非常重要的,否則任何人都能用這個密鑰進行解密數據。

Net框架中提供了下面這些類來實現密鑰加密的方法。

  • DESCryptoServiceProvider
  • RC2CryptoServiceProvider
  • RijndaelManaged
  • TripleDESCryptoServiceProvider

Public Key Encryption 公鑰加密

不像密鑰加密,公鑰加密用到了兩個鑰匙:一個被稱作“公鑰”,一個被稱作“私鑰”。公鑰不用保證在任何時候都是密祕的,而私鑰是被私鑰的持有者自己持有的,對別人是絕對保密的。被私鑰加密過的數據僅僅能通過對應的公鑰來進行解密,同樣,被公鑰加密過的數據僅僅能通過對應的私鑰來進行解密。通常,加密那些被傳輸的數據需要用公鑰,數據僅僅能用對應的私鑰進行解密。

Net框架中提供下面的類來進行公鑰加密:

  • DSACryptoServiceProvider
  • RSACryptoServiceProvider

Digital Signatures 數字簽名

數字簽名被用來鑑別數據發送方的身份和數據的真實性。它經常和公鑰加密一同使用。數字簽名的步驟如下:

1. 發送方對要進行傳輸的數據進行哈希運算並且創建一個消息摘要。消息摘要就是被傳輸數據的 一個壓縮。

   2.然後,發送方用私鑰加密這個消息摘要得到一個數字簽名。

   3.發送方通過一個安全通道發送數據。

   4.接收方接收數據,並且用公鑰解密這個數字簽名獲取消息摘要。

   5.接收方運用和發送方同樣的哈希算法運算接收的數據並創建一個新的消息摘要。

   6.如果發送方和接收方的消息摘要是匹配的,就說明這個消息是真的來自合法的發送方並且數據是真實可信的。

Hashes 哈希值

Hash algorithms create a fixed length output for a given variable length data. If somebody changes the original data even slightly then the hash generated will be different than original hash. They are often used with digital signatures. 自己翻譯哈

Net框架中的哈希算法類:

  • SHA1Managed
  • MD5CryptoServiceProvider
  • MACTripleDES

 

Random Number Generators 隨機數生成

當你多次使用加密類時,你需要生成一些加密的鑰匙。隨機數生成就是用作這個目的。Net提供了RNGCryptoServiceProvider類來生成隨機數。

About the author 作者個人信息:

Name :

Bipin Joshi

Email :

webmaster at dotnetbips.com

Profile :

Bipin Joshi is the webmaster of DotNetBips.com. He is the founder of BinaryIntellect Consulting (www.binaryintellect.com) - a company providing training and consulting services on .NET framework. He conducts intensive training programs in Thane/Mumbai for developers. He is also a Microsoft MVP (ASP.NET) and a member of ASPInsiders.

發佈了37 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章