我用标准的DES加密的值,用C#解密,如下做:我用DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES 有个IV ,怎么设定, 我将8BYTES KEY 设定到DES.Key
然后:
ICryptoTransform desencrypt = DES.CreateDecryptor();
res = desencrypt.TransformFinalBlock(inputByteArray, 0, inputByteArray.Length);解密不行,为何?
DES 有个IV ,怎么设定, 我将8BYTES KEY 设定到DES.Key
然后:
ICryptoTransform desencrypt = DES.CreateDecryptor();
res = desencrypt.TransformFinalBlock(inputByteArray, 0, inputByteArray.Length);解密不行,为何?
IV:初始化向量
MSDN:基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个密钥和一个初始化向量 (IV) 对数据执行加密转换。对于给定的私钥 k,一个未使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流内有重复的块,那么在密文流内也会有重复的块。如果未经授权的用户知道有关明文块的结构的所有信息,就可以使用该信息解密已知的密文块并有可能获得您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。
对称加密就是使用什么加密就用什么解密撒
KEY 和 IV是相同数值
请看:http://blog.csdn.net/cnbabycrazy/archive/2005/11/30/539785.aspx
C#自己加密,自己解密当然可以!
为何?