C语言
yanglongyyl
Coding
展开
-
Android Studio cmake方式jni开发,在c层使用其它动态链接库*.so
最近在研究Google推荐的cmake方式的ndk开发,遍寻网络居然很难找到如何在c层调用其它动态链接库函数(cmake方式),经过不懈努力,终于找到了可行的方法;本人初次涉及ndk开发,如有失误之处,请指教;原创 2016-11-16 01:30:46 · 1903 阅读 · 0 评论 -
SimpleGif,一款使用方法类似Glide但更省cpu、memory的Android ndk gif解码库,cmake方式,android studio项目
Gif文件是由多张静态图片组合而成,每张图片都有自己的显示时间,屏幕通过连续显示这些图片,以达到动态图的目的,由于这些特性,导致如果用java去解码,可能效率不是那么高,因为java能运行速度始终无法匹敌c/c++,所以用jni技术,通过c/c++代码解码gif文件,再将解析得到的单张图片以及对应的显示时间返回到java层,再呈现到view上是比较好的方式。 我通过学习github上一些开源代码,原创 2017-03-01 14:00:16 · 2820 阅读 · 0 评论 -
利用openssl crypto进行RSA非对称加密签名
最近公司升级app与后端通信安全机制,需要用到非对称加密RSA算法,需要在native层进行RSA签名,故采用ndk编译openssl的crypto目录下的算法,调用openssl相关函数进行签名。 首先,需要秘密保存私钥,这里在native层读到私钥后由于是在内存中,固需要用到openssl内存相关读取私钥的函数,openssl提供的bio接口读取字符串私钥,在内存中读取私钥有个坑,对私钥的内容原创 2017-08-05 15:29:25 · 1072 阅读 · 0 评论 -
windows编译64位openssl给64位java jni调用(vs2017)
1,首先clone openssl代码,仓库:https://github.com/openssl/openssl.git 2,然后切换到分支:git checkout OpenSSL_1_0_2-stable 3,配置环境,下载并安装ActivePerl。 下载地址:http://www.activestate.com/activeperl/downloads ,我现在 的是64位的原创 2017-10-03 22:45:50 · 1324 阅读 · 0 评论 -
jni使用openssl AES256位加解密(cbc模式),匹配java后端服务器算法,解决末尾乱码问题
前言:以下代码中统一的AES加密方式为”AES/CBC/PKCS7PADDING”,IV参数为”0102030405060708”(java中转为了byte数组,具体值看代码),之所以用CBC是因为它比ECB更安全 在使用openssl编写AES加解密算法代码时,发现c语言的AES加解密和JAVA的加解密并不能匹配,也就是说c语言加密的用c语言能解密,但是用java却解密不了,反之亦然;仔细对比发原创 2017-11-22 16:17:25 · 4185 阅读 · 0 评论 -
c语言实现rsa nopadding非对称加密算法(openssl api方式),匹配java后端 bouncycastle
c语言和java语言的rsa非对称加解密算法,RSA/NONE/NoPadding方式原创 2017-12-01 16:15:48 · 6996 阅读 · 2 评论 -
c语言(openssl)实现rsa/none/pcks1padding算法,匹配java后端
前一篇文章:http://blog.csdn.net/qq372848728/article/details/78687876int rsa_key_encrypt(EVP_PKEY *key, const unsigned char *orig_data, size_t orig_data_len, unsigned char *enc_data, size_t &enc_data_len原创 2017-12-01 16:26:14 · 1841 阅读 · 0 评论 -
编译ollvm4.0
首先下载ollvm源码 git clone -b llvm-4.0 https://github.com/obfuscator-llvm/obfuscator.git 然后命令行进入源码目录 cd obfuscator 建立build文件夹 mkdir build 进入build文件夹 cd build 配置cmake编译参数 cmake -DCMAKE_BUILD_TYPE=R...原创 2018-06-05 10:14:50 · 415 阅读 · 0 评论 -
腾讯mars xlog源码解析
前言 之前由于公司发展需要,app网络请求日志始终没有一个良好的分析手段,故公司成立了apm项目小组,通过AOP编程获取app网络请求日志并上报到服务端,然后通过网页多维度分析用户网络请求数据,类似听云博睿那样的工具,而日志模块通过调研最终选用了mars xlog,而xlog原有的日志格式并不符合业务需求,故需要通读xlog源码才能在其基础上进行修改,而且为什么选型xlog作为日志存储模块,接...原创 2019-04-11 17:06:59 · 2837 阅读 · 1 评论