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 ...
随机推荐
- ERROR: Functions in index expression must be marked IMMUTABLE
在创建函数索引时遇到报错,报错信息即为标题,下面是详细信息. 1 表定义 1234567 skytf=> \d test_39; Table "skytf.test_39" ...
- 自己动手从零写桌面操作系统GrapeOS系列教程——8.x86介绍
由于GrapeOS目前只支持x86,所以本讲我们简单的介绍一下x86. 百度百科上是这样介绍的:x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构. 中央处理器就是我们平时说的C ...
- Study for Go ! Chapter two - Expression
Study for Go ! Chapter two - Expression 1. Keyword Golang仅有 25 个保留关键字,体现了 golang 语法规则的简洁性 保留关键字不能用作常 ...
- vs2019 代码片段管理
工具/代码片段管理 上面地址是vs内部代码片段,可以参考写自定义片段 写好的模板保存为.snippet文件,放到固定文件夹中,然后使用添加,直接找到文件夹添加即可 <?xml version=& ...
- .net core使用 ELK
一 Linux 下安装部署 第一种方法:docker-compose 安装方式 1.1 创建 docker-compose.yml 文件 version: '3.1' services: elasti ...
- ucloud 签名算法
# Python version:3.6.5 import hashlib import urllib from urllib.parse import urlparse params = { &qu ...
- react+routerv6搭建项目
目标配置:React + Hook + React-router-v6 + Mobx + AntD: 1.创建项目 npx npx create-react-app 项目名称 2.安装sass环境,r ...
- uniapp - 设置代理
uniapp - 设置代理 HbuilderX 找到 manifest.json 文件,点击源码视图 "h5" : { "title" : "案件要素 ...
- Pycharm去除白色波浪线
- SpringBoot 自定义启动的logo(即banner)
1.自定义输出banner样式 推荐生成网站 http://patorjk.com/software/taag/ https://www.bootschool.net/ascii-art 2.配置 A ...