没有,最好有具体代码,可以参考,因为整个我都没弄明白,我就弄我的java的了,网上查了很多,有什么补位什么的,也不明白啊

解决方案 »

  1.   

    你要确保两者加密的填充方式一致一样,就不可能错误。java默认的填充方式PKCS5Padding,c的我就不知道了。
      

  2.   

    填充方式我改一至了,但是还是不行,Java生成的是字节数组,然后在转换成16进制的字符串,传给c程序的,对不?  ,c程序加密以后生成的字符串也是16进制对的吗?
      

  3.   

    统一用C加解密,java加解密用JNI或JNA调用c生成的函数库
      

  4.   

    你java生成的什么就直接转给c什么,转过后再解密,你认为能成功吗?
      

  5.   

    一般是由于模式和填充方式不一致造成的。如果双方的模式和填充方式都一致,那么,当秘钥不够24位时,补位操作可能有差异。
    这种情况,可以先取一个24位秘钥试试,如果双方能够互相加密解密,那么,完善Java端对秘钥的补位操作即可。
    具体补位操作,应该是自动将前8个字节作为k3进行补位。
      

  6.   

    http://blog.sina.com.cn/s/blog_552528460101evzl.html