因业务接口需要,一些字符串要采用3DES,我自己写的加密后的字串是类似“2PxByPrASbNYbQ/2+y7BAQ==”形式,
而对方给的测试加密后的字串则类似“f6ca34fc6800ebc7abd14a2170f17156"形式,这明显是16进制表示,但长度也明显不一样。 有明白3DES的朋友,帮忙讲解一下有关3DES相关事项,谢了。

解决方案 »

  1.   

    编码问题,一般情况下,如果给你的字串是0--9 A--F并且是加密字符的两倍长度,就是16进制编码,例如2PxByPrASbNYbQ/2+y7BAQ==,其中的2的ASCII码是32,16进制表示为20,那么他们给你的编码就是两个字节的20而不是2。
    另外也有可能使用Base64编码,Base64编码为64位编码,大约长度为加密字符的3倍长度。3DES加密解密都是适用Byte数组来进行的,每一个Byte是8位,用16进制字符表示就是2个字节,例如255的16进制是FF
      

  2.   

    f6ca34fc6800ebc7abd14a2170f17156
    长的像md5
    2PxByPrASbNYbQ/2+y7BAQ==
    DES
    3DES
    TripleDES
    长的都这样
      

  3.   

    3des加密后,如果是以十六进制输出的话,那密文是明文大小的2倍;若是2进制输出的话,那密文是明文大小的8倍;若以字符形式输出的话,那密文达到时等于明文大小!
      

  4.   

    明文:0000000000000000
    密钥:0123456789ABCDEFFEDCBA9876543210
    密文:+LbAOv/nr0vGhzmKlE7+0w==我是用的Delphi组件TDCP_3des加密的, 怎么得到的密文是::+LbAOv/nr0vGhzmKlE7+0w==
    哪位大师指点下啊!!
      

  5.   

    你这是经过base64编码过后的密文吧,还要转换为16进制码的