移动客户端本地加密方案
   需求是Android或ios应用内下载文件或数据到本地后能有一个加密方案使得这些文

件只有通过本应用看。查网上看到用sqlite加密(SQLCipher)是比较好的方案,问题是解密的秘钥放在哪里比较安全,另外除了数据加密存储之外还有其他好的方案吗?

8个回答

秘钥放在哪里都可以,关键是要把秘钥再加密,使用的时候解密,算法放在so文件中可以有效防止逆向破解

windmxf
白马啸西风 so够安全吗?这个方案够复杂了,一般人很难破解
4 年多之前 回复

看安全性级别了
算法和key放so里是比较靠谱了,不过还是要保护好app别被反编译,否则别人一样可以直接用你的so
key放服务器更好一些

windmxf
白马啸西风 个人也倾向放服务器端,因为本应用的服务器端的安全级别比较高了
4 年多之前 回复

可以 模仿SSH 的会话
加密真正秘钥存储在服务端(key) ,另外服务端 和客户端会话建立的时候使用 公钥--私钥 的机制建立会话。

1 客户端 向服务器发送 请求一个串(sessionKey)(作为会话秘钥),使用公钥加密
2.服务端使用 私钥解密。然后使用这个串对 key加密,返回客户端。
3,。客户端使用sessionKey 解密,得到真正的key。

以上流程,key存储在 服务端,防止客户端破解。 sessionkey可以在每次登录的时候随机生成。

windsunmoon
windsunmoon 回复白马啸西风: 公钥本身就是公开的,你肯定还需要一个类似登录验证啊,只有验证的才可以获取。
4 年多之前 回复
windmxf
白马啸西风 想了下,首先服务器上的key肯定是安全的,但是如果请求的url被反编译后发现,公钥也得到,然后伪造一个sessionKey,那用上面的机制就能得到真正的key了
4 年多之前 回复
windmxf
白马啸西风 感谢解答,可能会使用该方案
4 年多之前 回复

同意楼上,有网可以考虑将秘钥,非对称加密后存放到服务器后进行获取。如果没网就反正本地so

关键是看你加密的意图是什么,防止通讯过程被监听还是防止客户端文件被破解(包括用户本人),还是防止除了用户以外的别人破解

windmxf
白马啸西风 防止文件被破解,包括本人或者手机丢失后别人破解
4 年多之前 回复

简单的就把密钥放在程序中,只要防止被反编译出明文就差不多了。

windmxf
白马啸西风 文件安全级别较高,希望能在被反编译的情况下数据仍然安全
4 年多之前 回复

Young_Liu 的方案比较认同,或者你可以直接把你的秘钥放在so文件中?

Young_Liu 方案不错,稍微复杂点
其实密钥放在程序中也基本上没问题,一般程序都打成so的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
小谈移动端加密
加密方式大致分为以下几种: --哈希(散列函数) --MD5 --SHA1 --SHA256(512) --对称加密算法 --DES --3DES --AES(高级密码标准。美国国家安全局使用的加密算法) --非对称加密算法  RSA 很多项目中都用到了MD5,它是一种不可逆算法。相同的数据加密,得到的结果是一样的,对不同的数据加密,得到的结果是定长的(32字符),很多人以为这
关于加密:本地用户名与密码安全的存储方案
1)远程 对于远程登陆的用户名与密码的管理,Oracle、SQL Server、Access都是一种可以选择的存储方案。现在目前大多数商用Web服务器上管理密码的方式是存储于SQL Server与Oracle。。Access适合于小规模的测试,用它来管理密码几乎已经不存在。   2)本地 用SQL Server、Access、还是xml文件?加密后存明文吗? 安全的做
arcgis移动客户端几种离线地图的加载方案
arcgis移动客户端几种离线地图的加载方案
iOS本地数据存储安全
iOS本地数据存储安全移动APP通常会在设备本地存储一些数据,这可以为程序执行、更良好地性能或离线访问提供支持。由于移动设备使用地越来越广泛,设备失窃的风险也越来越大,因此不安全的本地数据存储已成为移动APP安全的主要威胁之一。攻击者可以通过一些方式获取到存储在iOS设备上的敏感信息,主要有以下方法: 恶意程序 借助iOS系统的安全弱点,攻击者可以设计出一种远程偷取iPhone上文件的恶意程序。
移动 APP 端与服务器端用户身份认证的安全方案
公司的 mobile app 是外包给其他公司做的,所以现在他们需要我们提供 API 接口进行调试,由于没有 API 开发的经验,所以现在一个比较难把握的问题就是如何实现服务器端与移动 APP 端通信时的用户身份认证问题。 搜集了一些资料,大部分的建议是在服务器端生成一个 token 然后在通信报文的 headers 利用这个 token 来进行验证。 这里有两个问题,首先这样直接生成 tok
物流货运移动APP解决方案
本产品是一个解决物流货运供求关系的移动互联网平台产品,服务的人群包含货主、车主、司机 。本产品通过移动互联网的技术手段,解决线下货有运输需求找车成本高、司机有车难找活、车主难以管理司机外勤等矛盾问题,提供多方运输信息共享,交易去中间化。
移动客户端与服务器通信方式一
*今天测试了一下Java 给iOS客户端推送消息,包括静默推送 ,还有别名推送,其实是和token绑定在一块的, 玩转推送后有很多问题都迎刃而解了,但是一波未平一波又起啊!又会有新的问题出现,先看看代码吧* iOS// 说明 这是在用户同意推送的前提上进行的,如果用户没有同意,那下面的都是扯淡了, - (BOOL)application:(UIApplication *)application
移动端与服务器间加密通信
对于移动端与服务器端进行加密通信,传统的方法是移动端和服务器都采用非对称加密方法进行加解密: 1、服务器端生成私钥和公钥对,移动端预先存放服务器端公钥 2、移动端在登陆时,使用服务器端的公钥加密登陆信息。移动端生成私钥和公钥,然后将公钥发送给服务器。 3、服务器私用移动端的公钥给移动端发送消息。 但是,非对称加解密的速度要比对称加解密慢,尤其是在移动端性能有限的情况下,所以折中的方式是非对
本地存储密码的安全设计
有些应用需要把用户密码保存在本地,本方案设计了一种较为安全的密码本地存储的方案。 1 安全要求 1.1 要实现的 防止攻击者得到用户密码的明文防止攻击者拿到自动登录token后,一直都可以登陆即使两个用户的密码相同,服务器保存的密文密码也不一样可在服务器端清除salt,让用户的自动登录token失效,需手动登录用户在多个终端登录同一个帐号,各终端的自动登录功能都生效 1.2
android本地数据加密
这篇文章主要介绍怎么对本地数据进行加密,可以做到本地数据文件不可修改,不可覆盖。 1.思路:主要思路是利用手机的uuid做密钥,来生成加密后的数据。获取本地数据的时候再根据uuid来解密。因为uudi的不同造成了即使加密算法即使被破解了,你修改了数据文件后在运行时读取数据的时候也会因为密钥的不同得不到正确的数据。 2.做法: /* * 加密 */ public
移动客户端与服务器端安全通信方案
转自:http://blog.csdn.net/sasoritattoo/article/details/8851996 手机移动端与服务器端安全通信一直是个问题,让人比较头疼,最近在网上查了一些资料,总结了一下得出了一个自我感觉还好的方案,分享一下,也希望得到大家的批评斧正。     CS,C客户端,S服务器端     在客户端软件发布前,客户端保存一个公钥,服务器保存一个私钥
关于工作宝APP的对数据库加密的方案建立过程分享
针对对APP数据库加密的需求,因为以前就有过苹果钥匙串、AES、RSA、SSH等加密技术的开发与学习,加上对工作宝的开发也有一段时间,熟悉工作宝APP基于MVVM设计模式的存储架构,在此架构基础上,对数据库进行用户敏感数据加密处理。   一、分析工作宝iOS架构 首先,从大体分析一下工作宝APP的存储架构: 以上就是工作宝的MVVM设计模式,其中UI层为显示层负责界面的显示,Manag
HTTPS 原理及安全加密方案
http://www.jianshu.com/p/0556a610e68e HTTPS 原理及安全加密方案 一、什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(
客户端本地数据破解手段 & 攻防总结
这里记录一些常见的本地破解手段,欢迎高手不吝讨论指教。1. 修改内存方案:通过分离UI显示和实际变量预防2. 修改本地文件a、修改数据库方案:加密数据库b、修改配置表方案:配置表加密,验证MD53. 替换数据库a、预防降级版本操作数据库作弊,方案:检查数据库版本是否比当前版本高b、预防玩家替换其他玩家的存档,方案:检查玩家设备号c、网络存储数据4. 二次打包,注入代码例如:葫芦侠、吾爱破解方案:a
RSA签名与RSA加密异同
RSA公钥加密体制包含如下3个算法:KeyGen(密钥生成算法),Encrypt(加密算法)以及Decrypt(解密算法)。 。密钥生成算法以安全常数作为输入,输出一个公钥PK,和一个私钥SK。安全常数用于确定这个加密算法的安全性有多高,一般以加密算法使用的质数p的大小有关。越大,质数p一般越大,保证体制有更高的安全性。在RSA中,密钥生成算法如下:算法首先随机产生两个不同大质数p和q,计算
接口加密《一》:移动应用中,通过在客户端对访问的url进行加密处理来保护服务器上的数据
我认为,保护服务器端的数据,有这么几个关键点: 不能对使用体验产生影响,这就排除掉了诸如每次接口调用都要求用户输入验证码这样的做法 接口调用的网络交互需要无规律可循,比如article/1 –> article/1000 这样的接口就太容易被其他人爬走了 要严格意义上阻击爬虫,需要每一次网络请求都是不可重放的,这样才能避免其他人通过监听网络交互并重放来爬取数据 对服务器端编码不产生
同态加密方案BGV的代码
BGV方案是目前同态加密效率比较高的方案,代码实现了此方案,其中包括打包等优化技术。
Java仿微信全栈 移动客户端+高性能后台
下载地址:百度网盘
如何选择一个适合自己的加密方案,加密算法呢
天下没有解不了的锁,同样也没有解密不了的程序。
Java仿微信全栈=高性能后台+移动客户端
第1章 课程介绍 课程介绍 第2章 netty介绍与相关基础知识 初识netty,学习阻塞与非阻塞,同步与异步,理解BIO、NIO、AIO以及netty的线程模型 第3章 使用netty编写第一个hello netty 服务器 从零开始使用netty编写服务器,在网页访问后返回hello netty,主要对服务器启动类,channel初始化器以及助手类讲解,最后会对channel的生命周期进行...
视频流媒体加密方案
背景: FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。 概述: 方案包括视频加密,视频播放,流媒体服务器三大主要功能,主要解决数字版权保护、在线视频点播流媒体服务器架设的问题。提供windows,Ios,android三个版本插件。 单机版客户端简单流程图: 流媒体
敏感数据加解密及传输方案
1、敏感数据加解密采用单独服务的方式部署在公司内网,便于扩展被多个服务调用,部署在内网可以增加密钥的安全性;  2、外部调用服务与内部服务器之间数据传输采用非对称公私钥加密传输保证传输安全;  3、数据加密算法采用AES算法对称加密,此算法加密效率高,安全性高;  4、AES加密密钥写在JAVA文件中,通过一些逻辑转换得到真正的加密密钥用于加解密,采用混淆编译防止反编译,增强密钥管理的安全性
一种基于中国剩余定理的加密方案
一种基于中国剩余定理的加密方案。一种基于中国剩余定理的加密方案一种基于中国剩余定理的加密方案一种基于中国剩余定理的加密方案
RSA加密解密和签名验证机制以及其区别和联系
1.RSA的加密解密机制原理 RSA公钥加密体制包含如下3个算法:KeyGen(密钥生成算法),Encrypt(加密算法)以及Decrypt(解密算法)。详细如下: 所以,从算法描述中我们也可以看出:公钥用于对数据进行加密,私钥用于对数据进行解密。当然了,这个也可以很直观的理解:公钥就是公开的密钥,其公开了大家才能用它来加密数据。私钥是私有的密钥,谁有这个密钥才能够解密密文。否则大
Android视频加密那点事儿!
前言  最近有需求要做视频的加密。因为视频下载到本地后,为了防止二次拷贝和二次上传到其他渠道,有些还是付费的视频,因此要对视频做加密,加密给了二周的研究时间,留下两周作为开发和测试阶段,故事就这样开始了! 分流加密(第一周)   万事开头难。
Android 常用的数据加密方式
前言Android 很多场合需要使用到数据加密,比如:本地登录密码加密,网络传输数据加密,等。在android 中一般的加密方式有如下: 亦或加密 AES加密 RSA非对称加密 当然还有其他的方式,这里暂且介绍以上三种加密算法的使用方式。亦或加密算法什么是亦或加密? 亦或加密是对某个字节进行亦或运算,比如字节 A^K = V,这是加密过程; 当你把 V^K得到的结果就是A,也就是 V^K = A,这
整数上全同态加密方案分析(1)
整数上全同态加密方案分析陈智罡博客:http://blog.sciencenet.cn/blog-411071-617182.html 《Fully Homomorphic Encryption over the Integers》简称DGHV方案《Computing Arbitrary Functions of Encrypted Data》简称 CAFED论文 我是先从陈智罡的博客开始学习全同...
Atitit。数据库 安全性 重要敏感数据加密存储解决方案
Atitit。数据库 安全性 重要敏感数据加密存储解决方案   1.1. 加密存储的重要性1 1.2. 使用的加密算法aes1 1.3. 数据加密以后会有一些问题。1 1.3.1. 一个是统计,比如统计资金总额。。就无法直接使用sql的sum等数据库内部聚合函数来处理了。。1 1.3.2. 还有一个就是按照金额检索,比如多少资金以下的用户。。1   1.1. 加密存储的重
.NET 产品版权保护方案 (.NET源码加密保护)
说明:你希望自己用.net辛辛苦苦做出来的软件被人轻易破解吗?你希望自己花了大量人力物力用.net开发出来的产品被竞争对手轻易获取核心代码吗?这是一篇比较详尽地介绍如何保护自己的.net源代码的文章,如混淆、加密和强名称等,出于保护原作者的角度,所以本人没有掐头去尾作为自己个人的文章,正因为是全文转载,所以并不代表本人完全赞同作者的全部观点,也不代表本人本人提作者提到的软件做广告,这一点请大家注意
Android 视频&文件,加密 解密
SPUtils 是一个保存文字到本地 工具类Application 全局 public static List<String> songLock = new ArrayList<>(); //加密的儿歌 /** * 视频文件 下载完成时调用 * 加密单个视频 * @param path */ public void lock(String
破解各种加密软件的方法
破解各种加密软件的方法(文件夹加密码软件等)现在大多数加密软件号称能快速加密几G的文件夹(如果:E钻文件夹加密大师,E神文件夹加密,高强度文件夹加密大师,文件加锁王,文件夹加锁王,超级特工秘密文件夹等)其实用的是一种在磁盘上建立个特殊文件夹,然后把文件或文件夹转移到这个文件夹里。这种方法,如果设计不好,极易破解。 现在告诉大家两个软件,可以轻易破解E钻文件夹加密大师,E
软件加密与授权管理的概念
软件加密的是什么,简单来说就是为软件加密以使软件不被盗版。软件保护是针对软件开发者提出的,而软件授权(License)的概念则是同时考虑了开发者和最终用户两方面的感受而提出的。“授权(License)”在名字上弱化了“保护”给最终用户带来的对立情绪,强调了软件的授权许可使用。   软件加密的概念是站在开发者的角度出发的, 它强调的是利用以加密为主的技术手段保护软件不被破解。从理论上说,只要拥
Android 使用MD5对SharedPreferences密码进行加密
在每个Android软件都会使用到SharedPreferences,将密码保存在本地,但是由于没有对密码进行加密,只要用户对手机进行root,获取了权限就很容易得到密码,为了防止密码外露,每个Android软件都要对SharedPreferences的密码进行加密。 在Android中提供了MD5加密,下面就对MD5加密进行一个测试,先创建一个MD5工具类 MD5Utils.java pa
基于身份的加密方案(IBE)
Boneh & Franklin's Identity Based Encryption Encryption phase Generates a random AES session key, and uses it to encrypt a file. Outputs ciphertext <filename>.ibe. The session key is IBE encrypted, and written to <filename>.key NOTE: Uses Tate Pairing only NOTE: New fast Tate pairing algorithm
最新Java仿微信全栈 高性能后台+移动客户端
下载地址:百度网盘
C#加壳方案
C#加壳方案 混淆加密C#加壳方案 混淆加密C#加壳方案 混淆加密C#加壳方案 混淆加密C#加壳方案 混淆加密C#加壳方案 混淆加密
某课网最新Java仿微信全栈=高性能客户端+移动后台全集
下载地址:百度网盘
Java最新仿微信全栈 高性能后台+移动客户端
下载地址:百度网盘
RSA加密解密及RSA签名和验证
  RSA加密解密及RSA签名和验证 此Demo包含两个文件,建立一个解决方案,然后建立两个文件,一个为Form,一个为Class,把代码分别复制进去即可RSA正确的执行过程:加密解密:1、获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥2、加密3、解密签名和验证:签名:1、获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥2、获取待签名的Hash码3、签名其
某网Java仿微信全栈+高性能后台+移动客户端
第1章 课程介绍 课程介绍 第2章 netty介绍与相关基础知识 初识netty,学习阻塞与非阻塞,同步与异步,理解BIO、NIO、AIO以及netty的线程模型 第3章 使用netty编写第一个hello netty 服务器 从零开始使用netty编写服务器,在网页访问后返回hello netty,主要对服务器启动类,channel初始化器以及助手类讲解,最后会对channel的生命周期进行...
剖析:从软件加密到软件授权保护
一直在关注软件授权保护相关的技术内容,发现一些基本概念经常容易被我们混淆,比如软件保护,软件加密,硬件加密,软件授权等,下面就阐述一下我对上述概念的理解,以及它们之间的关系。 AD:网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>> 一直在关注软件授权保护相关的技术内容,发现一些基本概念经常容易被我们混淆,比如软件保护,软件加密,硬件加密,软件授权
Java仿微信全栈 高性能后台+移动客户端
下载地址:百度网盘
一些大厂的android知识点
☐ synchronize用法☐ volatile用法☐ 动态权限适配方案,权限组的概念☐ 网络请求缓存处理,okhttp如何处理网络缓存的☐ 图片加载库相关,bitmap如何处理大图,如一张30M的大图,如何预防OOM☐ 进程保活☐ listview图片加载错乱的原理和解决方案☐ https相关,如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否
源代码安全加密解决方案
企业级源代码加密软件主要是解决软件开发企业在开发过程中的源代码安全问题,现将苏州某软件开发企业的源代码加密系统使用过程中的问题与解决方案分享出来,仅供相关企业在考虑源代码加密软件时参考。
图片,音频,视频的文件加密,解密,保护自身资源
private static String PASSWORD = "123456";      文件加密方法,支持MP3,jpg,png,wav.rmvb等所有图片,音频,视频格式 亲测可用 public static void unCode(String filePath, String cachePath) { InputStream is = null; Outpu
移动端跨平台框架分析
移动端跨平台框架分析移动端开发的软件需要覆盖到android及ios平台。以前都是用原生的代码来做开发,android用java,ios用objective c。这样做,虽然可以达到最好的效果,但是成本太高,需要写两套代码,而且对开发人员的要求很高。对于一些中小开发团队来说,是承受不起的。现在,已经有一些比较成熟的移动端跨平台框架,可以大大的提高我们的开发效率。主流的方案都是基于html5的做为开发
整数上全同态加密方案分析(2)
不知道大家在看的时候有没有注意到,Alice这个解决方案有效的关键在于:“解锁操作(加上一点点组装工作)花费不到一分钟的时间”,那事实是怎么样呢?Alice做了如下的实验: Alice尝试在一分钟内使用2号盒子的手套解锁1号盒子,但由于手套的厚度和锁的干扰,解锁没有成功。Alice把3号盒子放在在4号盒子中,她还把一瓶油脂放在4号盒子内。使用4号盒子的手套,她在锁上喷上一些油脂,然后试图解锁它。但...
工具库、本地配置文件,加密库代码
工具库 本地配置文件 加密库代码工具库 本地配置文件 加密库代码工具库 本地配置文件 加密库代码工具库 本地配置文件 加密库代码工具库 本地配置文件 加密库代码
超全的配色辞典
里面有很多全面的配色方案,你还在为写web项目或者移动客户端的页面布局不知道搭配什么颜色而烦恼吗?这里有十几个文件和配色方案
移动客户端文档
移动客户端使用的方法,包括如何具体的使用移动客户端
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问