C# DES三重加密

 TripleDES.Mode:获取或设置对称算法的运算模式;
 CipherMode.CBC:指定用于加密的块密码模式

  •  CBC  密码块链 (CBC) 模式引入了反馈。每个纯文本块在加密前,通过按位“异或”操作与前一个块的密码文本结合。这样确保了即使纯文本包含许多相同的块,这些块中的每一个也会加密为不同的密码文本块。在加密块之前,初始化向量通过按位“异或”操作与第一个纯文本块结合。如果密码文本块中有一个位出错,相应的纯文本块也将出错。此外,后面的块中与原出错位的位置相同的位也将出错。
  • ECB  电子密码本 (ECB) 模式分别加密每个块。任何纯文本块只要相同并且在同一消息中,或者在用相同的密钥加密的不同消息中,都将被转换成同样的密码文本块。 重要事项:不建议使用此模式,因为它存在多个安全隐患。如果要加密的纯文本包含大量重复的块,则逐块破解密码文本是可行的。另外,还可以使用块分析来确定加密密钥。此外,随时准备攻击的对手可能会在您没有察觉的情况下替代和交换个别的块,这能让块在不为您所知的情况下保存并插入流中的其他位置。

OFB 输出反馈 (OFB) 模式将少量递增的纯文本处理成密码文本,而不是一次处理整个块。此模式与 CFB 相似;这两种模式的唯一差别是移位寄存器的填充方式不同。如果密码文本中有一个位出错,纯文本中相应的位也将出错。但是,如果密码文本中有多余或者缺少的位,则那个位之后的纯文本都将出错。         CFB    密码反馈 (CFB) 模式将少量递增的纯文本处理成密码文本,而不是一次处理整个块。该模式使用在长度上为一个块且被分为几部分的移位寄存器。例如,如果块大小为 8 个字节,并且每次处理一个字节,则移位寄存器被分为 8 个部分。如果密码文本中有一个位出错,则一个纯文本位出错,并且移位寄存器损坏。这将导致接下来若干次递增的纯文本出错,直到出错位从移位寄存器中移出为止。默认反馈大小可以根据算法而变,但通常是 8 位或块大小的位数。使用 FeedbackSize 属性,可以改变反馈位数。支持 CFB 的算法使用此属性来设置反馈。

  • CTS 密码文本窃用 (CTS) 模式处理任何长度的纯文本并产生长度与纯文本长度匹配的密码文本。除了最后两个纯文本块外,对于所有其他块,此模式与 CBC 模式的行为相同。                 

 备注

块密码算法以块为单位加密数据,而不是逐个字节地加密数据。最常见的块大小为 8 个字节。由于每块都被严密处理,因此块密码比流密码提供更高的安全级别。但是,块密码算法执行起来通常比流密码慢。

块密码对每个块使用相同的加密算法。因此,当用同样的密钥和算法加密时,纯文本块总是返回同样的密码文本。由于此行为可用来解密密码,因此引入了可根据以前的块加密的反馈修改加密过程的密码模式。所产生的加密比简单的块加密提供更高的安全级别。
 
 TripleDES.Padding:获取或设置对称算法中使用的填充模式。
 PaddingMode.ANSIX923:
类型:System.Security.Cryptography.PaddingMode
          对称算法中使用的填充模式。默认值为 PaddingMode.PKCS7。
             大多数纯文本消息不会包含可完全填充块的大量字节。通常没有足够的字节填充最后的块。当发生这种情况时,向文本添加填充字符串。例如,如果块长度为 64 位,而最后的块只包含 40 位,则会添加 24 位的填充字符串。有关特定模式的说明,请参见 PaddingMode 枚举。
 

转载于:https://www.cnblogs.com/yuan-2012/archive/2013/03/12/2955940.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值