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 ...
随机推荐
- linux系统下,添加硬盘并挂载到操作系统的shell 脚本范例
#!/bin/sh #新添加硬盘挂载到操作系统 pvcreate /dev/sdb / / 一般新添加硬盘都是识别为sdb,当然,也不一定,要具体情况具体分析. vgcreate datavg / ...
- Django中多数据库的配置,实现分库分表,主从复制,读写分离
在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 1. 修改项目的 settings 配置 在 settings. ...
- python的常见问题解决
1.python库下载安装慢:用清华镜像 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tun ...
- Vscode报错: error:0308010C:digital envelope routines::unsupported错误记录解决
Vscode报错: error:0308010C:digital envelope routines::unsupported错误记录解决 因为安装了新版本的node才报的错误:node版本: v18 ...
- 微信轰炸Python脚本
1 import time 2 3 from pynput.keyboard import Key,Controller 4 5 keyboard = Controller() 6 7 a = inp ...
- 自我生啃 AMBA AXI 总线笔记
视频1:https://www.youtube.com/watch?v=1zw1HBsjDH8&list=PLkqJVNOiuuHtNrVaNK4O1BSgczja4obeW (What is ...
- soursetree 关于https:git remote: Unauthorized和username和password修改
一.sourcetree推送代码提交不上提示https:git remote: Unauthorized由于没有权限,需要登陆正确的账号以及密码即可以提交 二.SourceTree这是一个无效源路径/ ...
- Python 20个常用库
Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都应该有它. Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的.用过它之后你就不会再想用别的 ...
- CryptoKit 实现 椭圆曲线ECC加密
1.有没有一种方式让两个人的对话绝对安全呢?答案是肯定有的 那就是使用 椭圆曲线ECC加密 2.椭圆曲线ECC加密原理 假设有两个用户A和B .A随机生成一个密码对包含了公钥和私钥 同理B也随机生成一 ...
- Less 1-3
LESS-1 首先确认一下是否存在注入,加上?id=1,能够显示数据,然后加一个',出现报错,这样就说明存在注入点.接下来进行报错注入. 输入 ' and updatexml(1,concat(0x7 ...