DESede

Java DESede用C++ Openssl实现

放肆的年华 提交于 2019-11-28 21:24:13
最近在看一个项目的代码 开发语言:C++ 开发环境:VS2005 但有一个很别扭的地方,就是这个项目与外界的加密算法采用DESede,但其实现是采用jni调用java vm里面的函数。 查了一下,可以用Openssl来实现,但要注意model(ECB)和padding(PKCS#5) #资料 PKCS5, PKCS7和SSL3, 以及CMS(Cryptographic Message Syntax) 有如下相同的特点: 1)填充的字节都是一个相同的字节 2)该字节的值,就是要填充的字节的个数 如果要填充8个字节,那么填充的字节的值就是0×8; 要填充7个字节,那么填入的值就是0×7; … 如果只填充1个字节,那么填入的值就是0×1; 这种填充方法也叫PKCS5, 恰好8个字节时还要补8个字节的0×08 正是这种即使恰好是8个字节也需要再补充字节的规定,可以让解密的数据很确定无误的移除多余的字节。 参考资料: [1]Java DESede encrypt, OpenSSL equivalent http://stackoverflow.com/questions/9038298/java-desede-encrypt-openssl-equivalent [2] DES 算法的 C++ 与 JAVA 互相加解密 http://www.cnblogs.com/WonKerr