.NET中的密码学--对称加密(三)

翻译|其它|编辑:郝浩|2004-07-08 11:32:00.000|阅读 2065 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

在相同的情况下,你同样可以使用下面的语句。
RC2 mCrypto = SymmetricAlgorithm.Create(“RC2”);
这也可以给你返回一个RC2的对象(默认实现)。在这种情况下你要使用重裁Create方法用算法的名字设置参数来返回算法的对象。 这个Create方法来自SymmetricAlgorithm类,并且向我前面说的所有的使用对称算法的其它类都继承于SymmetricAlgorithm,因此你可以在上面所有的类里面找到Create这个方法。意思是如果你使用RC2.Create(“DES”)则它也能工作并且将返回一个DES的对象。但是不能使用RC2类得到DES对象。

上面的机制看起来很有用。我们可以用同样的方法使用我们自己的算法定义自己的类。但是要想这样,我们必须要对machine.config文件作一些小的改动。我在这里不详细描述。你可以参考Wrox关于密码学的书得到更多的信息。

现在让我们看看SymmetricAlgorithm类里面的一些方法和属性。

  • BlockSize:分开处理的数据块的大小。大的数据将被分成小的数据块来处理,如果数据小于块大小,则被追加(使用一些默认值填充)。 
  • Key:在处理数据的时候将要使用密钥。这个密钥被配置成使用字节数组。
  • IV:数据处理的时候使用初始化向量(上面已经描述)。配置成字节数组。 
  • KeySize:密钥的所有位的大小。 
  • LegalBlockSize: 返回BlockSize的枚举告诉你判断包括最大值,最小值和跳跃值在内的块的大小。跳跃值意思是还有多少值应该添加判断值得到下一个值。比如如果最小值是32,跳跃值是16那么下一个判断值就是48,64等等。(Returns the BlockSize Enumeration which tells you legal values for block size including max value, min value and Skip value. Skip value means that how much value should be added to last legal value to get next value. Like if min value is 32 and Skipvalue is 16, it means next legal values will be 48, 64 and so on.) 
  • Mode: 位操作得到或者设置模式。见上面描述。值是CipherMode枚举中的一个。 
  • Padding: 得到或者设置PaddingMode枚举中的一个追加值。(填充块中空余的区域) 
  • LegalKeySize: 和LegalBlockSize一样,但是处理的是KeySize。 
  • Create: 上面已经描述,使用它创建默认算法实现的类的实例。 
  • CreateEncryptor: 返回一个可以手动加密数据的IcryptoTransform对象。一会将仔细描述。 
  • CreateDecryptor: 返回一个可以手动解密数据的IcryptoTransform对象。一会将仔细描述。 
  • GeneratrKey and GenerateIV: 在加密或者解密的过程中如果Key和IV是null则这些方法可以产生默认的密钥和IV。 
  • VaildKeySize: 检查给定的密钥是不是算法的有效的密钥。 
  • Clear: 清除和消除所有的资源以及象密钥和IV这样的内存信息。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP