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 ...
随机推荐
- kubernetes之Ingress发布Dashboard(二)
1.什么是Dashboard Dashboard 是基于网页的 Kubernetes 用户界面. 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错, ...
- oracle 设置用户永不过期
一.查看用户的proifle是哪个,一般是default SELECT username,PROFILE FROM dba_users; 二.查看指定概要文件(如default)的密码有效期 SELE ...
- 常用的基本Dos命令
Windows+R: 输入cmd,运行控制台 #盘符切换: 盘名+: #查看当前目录下的所有文件: dir #切换目录: cd+文件名 #返回上一级: cd.. #清理屏幕: cls #退出终端: e ...
- 【Redis的三种数据删除策略】定时定期惰性,超出内存就自动清理
https://blog.csdn.net/DQWERww/article/details/126453008 https://blog.csdn.net/qq_38056518/article/de ...
- Java内存分析利器——Eclipse Memory Analyzer工具的使用
一.如何下载Java程序的dump内存文件并离线导入到MemoryAnalyser工具进行分析 1.jps查看Java应用的pid jps 11584216168084 Launcher24792 ...
- element-ui动态表单验证
由于项目中固定标签的数据是由后端查询回来的数组,需要进行表单验证,代码如下: <template> <div class="form"> <el-fo ...
- 用js实现元素两个元素位置对齐
一.问题描述 使得填表单位那一行字与下面的表格左对齐,对表格使用css中的margin:auto实现了居中,但是对那一行字(用div包裹的)使用margin:auto不生效:并且2021年下面对应的月 ...
- (前端面试题)详解 JS 的 setTimeout 和 setInterval 两大定时器
程序员面试题库分享 1.前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 2.前端技术导航大全 推荐:★★★★★ 地址:前端技术导航大全 3.开发者颜色 ...
- feign返回值解决反序列化对象嵌套List失败的问题
文摘 问题描述 当用feign client远程调用时,返回的复杂对象反序列化报错. 错误信息: Caused by: com.fasterxml.jackson.databind.exc.Misma ...
- Java笔记_this关键字_HomeWork(1 - 4 题)
第一题 /** * @ClassName HomeWork01 * @Description TODO * @Author Orange * @Date 2021/4/23 8:14 * @Versi ...