ndk签名验证_Android JNI NDK C++ so本地验证 获取应用签名

一.前言

最近做的应用涉及到敏感数据加密,就是数据加密后传到后台,然后后台解密出相应的值.初步用RSA公钥加密私钥解密,那么问题来了如果公钥用java文件写的话很容易泄露,所以要把公钥放在C里面,那么问题又来了,如果有人直接把SO文件拷贝过去岂不是又可以直接使用了?所以这个地方要使用so本地验证.怎么验证呢?思路是在C里面获取应用的签名,然后比对签名是否正确,如果正确才可以给java代码返回对的key值.

二.参考

三.集成简单的JNI

1.首先配置ndk环境

289c0b227902?nomobile=yes

Paste_Image.png

这个ndk可以去官网下载也可以用as下载,as下载的方法如下

289c0b227902?nomobile=yes

Paste_Image.png

2.配置app下的build.gradle

289c0b227902?nomobile=yes

Paste_Image.png

289c0b227902?nomobile=yes

Paste_Image.png

以上两个都在android{}内

3.调用c的java类

public class JNITest {

static {

System.loadLibrary("bbCourseLib"); //bbCourseLib 就是上一步在build.gradle中配置的moduleName so的名字

}

public static native String getbbCourseKeyFromC(Object contextObject);

}

4.C的头文件

先clean project 然后 rebuild project

289c0b227902?nomobile=yes

Paste_Image.png

然后就会看见生成classes文件夹

289c0b227902?nomobile=yes

Paste_Image.png

然后打开as下面的terminal 输入下面指令

289c0b227902?nomobile=yes

S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值