我用标准的DES加密的值,用C#解密,如下做:我用DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES 有个IV ,怎么设定, 我将8BYTES KEY 设定到DES.Key
然后:
ICryptoTransform desencrypt = DES.CreateDecryptor();
res = desencrypt.TransformFinalBlock(inputByteArray, 0, inputByteArray.Length);解密不行,为何?

解决方案 »

  1.   

    IV?用哪个加密就用哪个解密呗。怎么加密的?
    IV:初始化向量
    MSDN:基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个密钥和一个初始化向量 (IV) 对数据执行加密转换。对于给定的私钥 k,一个未使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流内有重复的块,那么在密文流内也会有重复的块。如果未经授权的用户知道有关明文块的结构的所有信息,就可以使用该信息解密已知的密文块并有可能获得您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。
      

  2.   

    byte[] iv = new byte[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
      

  3.   

    ???怎么设置??
    对称加密就是使用什么加密就用什么解密撒
    KEY 和 IV是相同数值
    请看:http://blog.csdn.net/cnbabycrazy/archive/2005/11/30/539785.aspx
      

  4.   

    谢谢各位的!过是人家送的DES加密值,我用C#解密不成功的!为何!
    C#自己加密,自己解密当然可以!
      

  5.   

    你要看看他是怎么加密的,是不是像C#的实现一样是CBC模式?让他提供解密模块!
      

  6.   

    他就是标准的DES算法,八个字节的KEY,八个字节的待加密值,加密好后,我的C#就解不开的,
    为何?