数据加密总结进阶(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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值