安卓项目中一直使用的是java的算法,使用的javax中的cipher来实现,现在想改为jni实现,需要用c来写,然后编译so包
so,找了好多个des中c的实现,最后选择了ssl中的des加密。http://src.gnu-darwin.org/ports/security/xyssl/work/xyssl-0.6/library/des.c
然后问题是加解密的结果不一致,问题找到了,了解了一下des加密的mode又cbc,ecb等。so使用相同的mode
然后padding填充方式又不同,so把c的填充方式改一下。最后编译so包,运行成功。
注:java的实现方式一大堆,c地址的贴出来了。所以自己改一下mode和padding就可以,就不贴代码了。