难道是算法实现不一样?各位大侠有没有碰到过这种情况?

解决方案 »

  1.   

    实现有错误也是又可能的,
    但是如果你解密正确,那么实现通常是正确的,
    不过即使是正确的实现,它们的加密结果也可能是不同的,这其中有个Initial Vector(不知道它们的专业术语怎么讲)的问题,
    在某些环境下,象“两次加密的得到的密文一样”
    或者“报告师座,共军重复发送了这个密文两次了”
    这样的信息对于攻击者来说是有用的信息,
    为了让分析密文的人失去了得到这个信息的可能性,
    通常,高强度的加密算法
    会设计一个类似于IV这样的东西,初始化加密盒时它们就被赋予随机的数据,
    或者在明文的首部或其他地方插入了类似随机信息这样的东西,
    这样就使得对同一个密钥加密同一段明文,每次加密它们得到的密文都是不一样的当然,为了顺利解密,密文中会包含这个可以公开的IV信息,
    而这个IV和密钥、明文以及加密时间地点是没有任何关系的,因而它是安全的我不懂、不了解DES,因此以上的内容可能不适用于DES
      

  2.   

    其实楼主可以交叉验证一下用java的实现来加密,用delphi的实现来解密
    然后再反过来,用delphi的实现来加密,用java的实现来解密如果都通过了,实现是错误的可能性就很小了
    否则,那么至少有一个实现是错的