NDK 数据加解密-AES 对称加密

作者: 毛先森 | 来源:发表于2019-08-27 10:13 被阅读0次

前言

网络传输过程中对数据进行加解密是非常必要的操作,Java 就可以实现数据加解密操作,但是使用 NDK 来做能提高安全性(密钥放在 so 文件中)和性能.

加密方式

在这个 Demo 中,我们使用 AES(对称加密)来处理数据. 对称加密的加解密双方持有完全相同的密钥,也就是说客户端和服务器约定一套"密码",大家传输数据都用此密钥加密,加密后的数据是不可读的,另一方拿到数据后马上用密钥解密数据. 这就好比二战时代的军情电报,大家都用同一套密码本,使用密码本将前线军情转换成别人读不懂的代号,接收方因为有同样的密码本,可以将这些代号逐一翻译成可读的信息.

我们的应用程序中的支付数据,关键接口数据基本会使用加密传输,避免网络请求被拦截后用户信息暴露给其他人.

实现过程

我们使用 AES/CBC/NoPadding 进行数据加解密,加解密操作由 Java 层处理,而密钥被保存在 JNI 层.

  • 首先编写 JNI 层代码,操作很简单,只是 JNI 从 Native 层获取一个字符串到 Java 层

#include "com_bailun_kai_encryptdemo_JniEncrypt.h"

JNIEXPORT jstring JNICALL Java_com_bailun_kai_encryptdemo_JniEncrypt_getAESPassWord
  (JNIEnv *env, jobject){
     //当前 AES 的密钥长度为 16 字节,128 bit
     return env->NewStringUTF("BlTEstHeLLoWORld");

  }
  • 加载 so 库
public class JniEncrypt {

    public native String getAESPassWord();


    static {

        System.loadLibrary("EncryptLib");

    }


}
  • 加解密过程
video2gif_20190827_100840.gif

相关文章

  • NDK 数据加解密-AES 对称加密

    前言 网络传输过程中对数据进行加解密是非常必要的操作,Java 就可以实现数据加解密操作,但是使用 NDK 来做能...

  • 011各种加密算法比较

    算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA 对称加密算法(加解密密钥相同...

  • Android加解密篇AES

    AES方式加解密 高级加密标准(Advanced Encryption Standard),对称秘钥加密算法之一。...

  • 前后端数据交互加密AES+RSA

    附件下载:前后端数据交互加密实例.zip 简单介绍一下AES和RSA AES:对称加解密,加密解密使用同一个秘钥。...

  • Android网络加密

    加解密的技术分类 哈希函数 - SHA256、MD5 对称加密 - AES 、DES 非堆成加密 - RSA ...

  • iOS签名机制

    安全方案 对称密码:DES,3DES,AES 加解密用同一个密钥 加解密速度快 无法解决密钥配送问题 非对称加密:...

  • 2020-02-22密码学

    对称加密 —— AES DES 明文数据 ——》密钥 ——》密文 密文数据 ——》密钥 ——》明文 非对称加密 —...

  • iOS加密小记

    1 对称加密加密解密是同一个密钥,加解密速度快,常见的有DES,3DES,AES128,AES256等。DES已经...

  • Https的交互流程

    先理解几个概念对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等,...

  • AES & RSA算法

    对称加密,经典算法 - AES 对称加密算法其实就是共享秘钥。在对称加密算法中,数据发信方将明文(原始数据)和加密...

网友评论

    本文标题:NDK 数据加解密-AES 对称加密

    本文链接:https://www.haomeiwen.com/subject/anusectx.html