上篇介绍了MD5SHA1VS.NET中的用法(http://www.cnblogs.com/lizhiwen/archive/2007/09/04/881763.html

),这次来介绍一下RSA加密在VS.NET的使用。首先简单介绍下RSA:

也就是利用公共密钥和私用密钥(public key and private key)进行加密解密,属于可逆操作。由RivestShamirAdlernan三人所研究发明的。它利用两个很大的质数相乘所产生的乘积来加密。这两个质数无论哪一个先与原文件编码相乘,对文件加密,均可由另一个质数再相乘来解密。但要用一个质数来求出另一个质数,则是十分困难的。因此将这一对质数称为密钥对(Key Pair)。在加密应用时,某个用户总是将一个密钥公开,让需发信的人员将信息用其公共密钥加密后发给该用户,而一旦信息加密后,只有用该用户一个人知道的私用密钥才能解密。具有数字凭证身份的人员的公共密钥可在网上查到,亦可在请对方发信息时主动将公共密钥传给对方,这样保证在Internet上传输信息的保密和安全。

下面是具体使用方法:

 1    }

这里有几个需要注意的地方:

1.当导出密钥信息到文件中时, ToXmlString的参数--true表示公钥和私钥信息,false只导出公钥信息

2.加密的数据长度是有限制的,根据具体环境而有所不同

下表说明了 Microsoft Windows 的不同版本所支持的填充,以及操作系统和填充的不同组合所允许的 rgb 的最大长度。

填充

支持的操作系统

rgb 参数的最大长度

OAEP 填充(PKCS#1 2 版)

Microsoft Windows XP 或更高版本。

模块大小 -2 -2*hLen,其中 hLen 为哈希代码的大小。

直接加密(PKCS#1 1.5 版)

安装了高位加密包的 Microsoft Windows 2000 或更高版本。

模块大小 - 1111 个字节是可能的最小填充值。)

不支持直接加密和 OAEP 填充

未安装高位加密包的 Windows 98Microsoft Windows Millennium Windows 2000(或更高版本)。

对称密钥允许的最大大小。

 

3.加解密信息必须成对使用

 

上面的这几个方法,可以用在配置文件上。比如,配置文件里有密码等敏感信息,那么你可以先把密码加密,然后写在配置文件中。使用的时候再到程序里进行解密。有个问题,偶没想明白,私钥信息是个文件,放在哪才安全呢,磁盘上?程序里?数据库?

Rsa还有一种用法,如下。这种方法具体用在什么场合,恕偶愚钝,还没想到,难不成在项目的各个模块之间运行时传递?

 1

相关文章:

  • 2022-12-23
  • 2022-03-04
  • 2021-11-17
  • 2021-06-03
  • 2021-10-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
相关资源
相似解决方案