Android MD5加密、RSA加密
现在公司做金融项目,需要考虑安全加密方面的问题。感谢大牛同事(冯哥) ,给我很大的帮助。
考虑到安全优化,我们把秘钥、加密步骤放到native中。考虑用到的技术:(1 )jni,(2 )OpenSSL加密库。
android使用C++代码做加密操作:与之前的JNI开发不同的是, 自studio2.2起,增加了CMack外部构建工具,我们写C++代码也有自动补全提示了。在创建工程时增加了选项【】Include C++ Support,勾选上它,自动创建NDK工程。
创建工程前需要配置好NDK需要的工具,还有环境没配好可能导致C++代码不提示
这里参考自:http://blog.csdn.net/cuiyufeng2/article/details/64125594
我创建的NDK工程如下:

与我们平时的java工程不同的地方:
.externalNativeBuild文件夹(自动生成)、cpp文件夹(存放C++代码)、CMakeLists.txt文件(CMake脚本配置的文件) 、app下的build.gradle(CMakeLists.txt文件的路径)。
这里需要注意下,创建的C代码.cpp文件,都需要在CMakeLists.txt文件中指明路径,否则会报错找不到。
引入OpenSSL加密库,openssl封装了大量的加密算法,大大简化了我们的加密操作。这里就不多说了,下面我会放上自己的小demo。
这里提一句:***** MD5加密是不可逆的,不要说错了。
还有使用RSA加密时,不能同一种秘钥加密解密。我们把公钥放在客户端,私钥放在服务器(为了安全,客户端不能有私钥)。
通常项目开发中,客户端公钥加密后的数据传给服务器,服务接到数据后拿私钥解密;服务器处理完的结果再用私钥加密后传给客户端,客户端接到服务给的数据后拿公钥解密查看结果。
demo: https://github.com/HeavenDong/EncryptDemo
Android MD5加密、RSA加密的更多相关文章
- Android数据加密之Rsa加密
前言: 最近无意中和同事交流数据安全传输的问题,想起自己曾经使用过的Rsa非对称加密算法,闲下来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...
- C# Base64编码解码 ,Md5、Rsa加密解密
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Clas ...
- Android 中 非对称(RSA)加密和对称(AES)加密
在非对称加密中使用的主要算法有:RSA.Elgamal.背包算法.Rabin.D-H.ECC(椭圆曲线加密算法)等. 优点: 非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥, ...
- openssl 非对称加密 RSA 加密解密以及签名验证签名
1. 简介 openssl rsa.h 提供了密码学中公钥加密体系的一些接口, 本文主要讨论利用rsa.h接口开发以下功能 公钥私钥的生成 公钥加密,私钥解密 私钥加密,公钥解密 签名:私钥签名 验 ...
- Android接口安全 - RSA+AES混合加密方案
转载请注明出处: http://blog.csdn.net/aa464971/article/details/51034462 本文以Androidclient加密提交数据到Java服务端后进行解密为 ...
- MD5,Des,RSA加密解密
一.加密和解密 下面先熟悉几个概念 1>对称加密:加密的key和解密的key是同一个 但是如何确保密钥安全地进行传递?秘钥的安全是一个问题 2>非对称加密:加密点的key和解密的key不是 ...
- Android数据加密之Aes加密
前言: 项目中除了登陆,支付等接口采用rsa非对称加密,之外的采用aes对称加密,今天我们来认识一下aes加密. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes ...
- Android数据加密之Des加密
前言: 端午节前有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...
- rsa加密--选择padding模式需要注意的问题。。。
最近在做一个项目中需要,在android对一个密码字段首先进行 一次md5加密后再进行一次rsa加密,然后把加密的结果通过 json协议传输给nginx服务器进行解密.在android中,可以直接 使 ...
- openssl C语言编码实现rsa加密
非原创, 引用自: 1 CC=gcc CPPFLAGS= -I /home/yyx//openssl-1.0.1t/include/ CFLAGS=-Wall -g LIBPATH = -L /usr ...
随机推荐
- Spring Boot 整合 Logback 日志
Spring Boot 支持 Java Util Logging,Log4J,Log4J2 和 Logback 等日志框架,默认采用 Logback 日志. 在实际 Spring Boot 项目中使用 ...
- AtCoder随做
突然发现只有我没写过 AT. 没写题解不意味着没做,有的忘了写或者太草率了就算了. 部分前言删了. 目录 ABC020D ABC241G ABC268 AGC003D AGC004D AGC004E ...
- winfrom快捷键
1.当活动窗体的快捷键 1 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 2 { 3 KeyEventArg ...
- win10bug可导致系统崩溃
1.使用浏览器访问访问路径:\\.\globalroot\device\condrv\kernelconnect会立刻导致系统崩溃.会影响Windows10 1709及以上版本 2.使用以下代码保存成 ...
- [Maven] 引入依赖以后如果标红怎么办
- 【剑指Offer】【字符串】字符串的排列
题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入一个字符串,长 ...
- drf从入门到飞升仙界 08
断点调试使用 # 程序在debug模式运行,可以在任意位置停下,查看当前情况下变量数据的变化情况 # 使用pycharm调试程序 - 1.以debug模式运行. - 2.在代码左侧加入断点(红圈) - ...
- vue3 、typescript环境, props自定义类型propType
vue3 .typescript环境, props自定义类型propType //子组件的props类型是复杂的类型的时候,可以用propType进行强制类型转换 //eg 复杂函数,对象数组,对象的 ...
- FMC DA子卡设计原理图:FMCJ465-2路 16bit 12.6GSPS FMC DA子卡
FMCJ465-2路 16bit 12.6GSPS FMC DA子卡 一.板卡概述: FMCJ465是一款转换速率最高为12.6GSPS 的 DAC 回放板,DAC位数16bit; 板卡基于 ...
- windows 10中Microsoft Edge Beta登录账户提示:以管理员身份运行 Microsoft Edge 时不支持登录。请以非管理员身份重新启动 Microsoft Edge,然后重新尝试登录。的解决方案
windows 10中Microsoft Edge Beta登录账户提示:以管理员身份运行 Microsoft Edge 时不支持登录.请以非管理员身份重新启动 Microsoft Edge,然后重新 ...