Triple DES实现

1.DES 算法可能是运用最广的对称加解密算法,但由于密钥长度较短,导致安全性不高。
2.故在安全性占首要地位的应用场合如金融业等,采用多个不同密钥(K1, K2, K3)的多层DES加解密。

这些多层DES系统被广泛应用,由此衍生出Triple DES, G-DES, DES-X, LOKI89和ICE等对称加解密系统。

Triple DES加密过程:
 1. 以 K1 加密
 2. 以 K2 解密
 3. 以 K3 加密
解密过程 (密钥顺序及应用方向与加密过程相反):
 1. 以 K3 解密
 2. 以 K2 加密
 3. 以 K1 解密

如果令K1=K3,则实际进行了双密钥加解密,即Triple DES加解密。就是key为byte[16]
如果令K1=K2=k3,则实际进行了普通单密钥加解密。就是key为byte[8]

Triple DES加密key为byte[8]的话,加密后的结果跟DES加密一模一样的
把 DES Key ( 8 bytes )來做 triple-DES 运算...
变成

1. 加密
2. 解密
3. 加密

前二次抵消了,所以~~~

在dotnet里不允许3个key有相同的key,两两相同,三个都相同 都不允许。
//加密key,注意了,是24个字符,64位,中文也是1个字符
  const string KEY_64 = "大amisoftgamisoftdamisoft";

上面的三个key 是如下:
key1 =大amisoft
key2 =gamisoft
key3= damisoft

对称算法的初始化向量IV还是8位。

加密解算法跟DES的结构差不多,只是加密的提供者不一样:
TripleDESCryptoServiceProvider cryptoProvider = new TripleDESCryptoServiceProvider();

你可能感兴趣的:(des)