对于小量数据的加密,我们可以使用DPAPI,对称密钥,非对称密钥等。
对于大量数据的加密,非对称密钥加密不仅麻烦,而且速度也很慢,同时还要对公钥和密钥进行保密。
使用对称密钥,速度是相当快的,但仍然要处理密钥的问题,当然这种密钥也有时效性,因为它容易被破解。所出一般情况下用于网络上的会话传输,SSL中用的较多。
对于不想保存密钥,而又要加密和解密来说,DPAPI可能显得简单的多,而且也不需要自己写太多的代码,安全性也得到一定的保证,同时不需要保存密钥,一举多得。

使用举例,下面就DPAPI加密和解密数据库连接字符串举例:

1使用DPAPI加密或解密你的数据string dbconn = "Provider=SQLOLEDB;SERVER={0};uid={1};pwd={2};database={3}";
2使用DPAPI加密或解密你的数据DataProtector dataProtector = new DataProtector(DataProtector.Store.USE_MACHINE_STORE);
3使用DPAPI加密或解密你的数据byte[] bts =  Encoding.Default.GetBytes(dbconn);
4使用DPAPI加密或解密你的数据byte[] bytes = dataProtector.Encrypt(bts, null);//加密
5使用DPAPI加密或解密你的数据string values = Encoding.Default.GetString(dataProtector.Decrypt(bytes, null));//解密
6使用DPAPI加密或解密你的数据

下面是对DPAPI的封装。

  1使用DPAPI加密或解密你的数据using System;
  2使用DPAPI加密或解密你的数据using System.Runtime.InteropServices;
  3使用DPAPI加密或解密你的数据
  4使用DPAPI加密或解密你的数据namespace CNetware.Data.DPAPI
  5

相关文章: