android文件加解密(安卓加密文件怎么解密)
Android Okhttp/Retrofit网络请求加解密实现方案
比较安全的方案应该是AES+RSA的加密方式。具体如下图所示。
为什么要这样做呢?
1、RSA是非对称加密,公钥和私钥分开,且公钥可以公开,很适合网络数据传输场景。但RSA加密比较慢,据说比AES慢100倍,且对加密的数据长度也有限制。
2、AES是对称加密,加密速度快,安全性高,但密钥的保存是个问题,在网络数据传输的场景就很容易由于密钥泄露造成安全隐患
3、所以,AES+RSA结合才更好,AES加密数据,且密钥随机生成,RSA用对方(服务器)的公钥加密随机生成的AES密钥。传输时要把密文,加密的AES密钥和自己的公钥传给对方(服务器)。对方(服务器)接到数据后,用自己的私钥解密AES密钥,再拿AES密钥解密数据得到明文。这样就综合了两种加密体系的优点。
4、除上面说的外,还可以加签名,即对传输的数据(加密前)先做个哈希,然后用自己的RSA私钥对哈希签名(对方拿到自己的公钥可以验签),这样可以验证传输内容有没有被修改过。
就java来说,加密的输入和输出都是字节数组类型的,也就是二进制数据,网络传输或本地保存都需要重新编码为字符串。推荐使用Base64。Android 有自带的Base64实现,flag要选Base64.NO_WRAP,不然末尾会有换行影响服务端解码。
Android中Base64加密
总而言之,这些不同语言都有实现库,调用即可,关键是参数要一致,具体还需要和后台联调一下。
rsa加解密的内容超长的问题解决
现在说到网络框架,应该毫无疑问是Retrofit了。上面说的加密方案说到底还是要在网络请求框架内加上,怎么做入侵最小,怎么做最方便才是重点。
1、坑定不能直接在接口调用层做加密,加参数,这样每个接口都要修改,这是不可能的。
2、ConverterFactory处理,这也是网上可以搜到的很多文章的写法,但我觉得还是有入侵。而且有点麻烦。
3、OkHttp添加拦截器,这种方法入侵最小(可以说没有),实现呢也非常优雅。
下面的实现,网上也找不到多少可以参考的文章,但不得不说,OkHttp的封装和设计真的很好用,所见即所得。看下源码,就知道该怎么用了,连文档都不用查。
主要注意点:
0、和接口无关的新加的数据放在请求头里。
1、该close的要close,不然会内存泄漏。
2、新旧Request和Response要区分好,新的要替换旧的去传递或返回。
3、要对response.code()做处理,只有在和后台约定好的返回码下才走解密的逻辑,具体看自己的需求,不一定都是200。
Android使用RSA加密和解密
1.data是要加密的数据,如果是字符串则getBytes。publicKey是公钥,privateKey是私钥。自定义密钥对测试
2.从文件中读取公钥
当加密的数据过长时,会出现javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes的异常。rsa算法规定一次加密的数据不能超过生成密钥对时的keyLength/8-11,keyLength一般是1024个字节,则加密的数据不能超过117个字节
测试分段加密和解密
生成公钥和私钥后,用base64编码
一、android加密的数据服务器上无法解密?
android的rsa加密方式是RSA/ECB/NoPadding,而标准jdk是RSA/ECB/PKCS1Padding,所以加密时要设置标准jdk的加密方式
二、base64编码。因为不同的设备对字符的处理方式不同,字符有可能处理出错,不利于传输。所以先把数据做base64编码,变成可见字符,减少出错
官方提供的base64类,Base64.encode编码,Base64.decode解码。用这个会有换行符,需要自定义
三、rsa是非对称加密算法。依赖于大数计算,加密速度比des慢,通常只用于加密少量数据或密钥
四、公钥加密比私钥加密块,公钥解密比私钥解密慢。加密后的数据大概是加密前的1.5倍
安卓手机文件如何加密
利用自带的文件管理更改图片、视频、声音文件的后缀名,然后更改后的文件就不会在多媒体里出现,如需要查看时,将后缀名改回即可。下面是我收集整理的安卓手机文件如何加密,欢迎阅读。
第一种方法:用手机锁加密。
得用手机锁将打开该文件的程序锁定,没有密码就打不开这程序,从而达到文件加密的目的。
第二种方法:用移位的方式加密。
就是把想要隐藏的文件夹放如隐藏文件夹如System里面,这样你的文件就不会显示出来了。这个方法隐藏文件很好用,但要想把这个隐藏文件给找出来,就很烦了,当然有电脑那就另当别论了。
第三种方法:更改后缀名加密。
利用自带的文件管理更改图片、视频、声音文件的后缀名,然后更改后的文件就不会在多媒体里出现,如需要查看时,将后缀名改回即可。
第四种方法:用文件锁Best_Crypto加密。
该软件可以对手机C/D/E各个文件夹内的文件夹加密,可以对jpg,gif,sis,3gp,mp4等文件加密,是出的比较早的S60第三版的加密软件,其加密的方法是复制原文件后进行加密。
第五种方法:用文件动力、Y-管理器或Q-管理器加密。
将文件夹的`属性更改为隐藏,然后将需要加密的文件移动到该文件夹即可。但在实践过程中发现,在多媒体里查看过的文件,即使该文件移动到隐藏文件夹后依然可以在多媒体里查看到,解决的方法为:将文件移动到隐藏文件夹后,更改该文件夹的名字。
第六种方法:用电话精灵加密。
电话精灵的加密功能极其强大,可以对短信、通话记录和文件加密,在此本人只讲讲文件加密的方法:进入电话精灵--文件管理器--输入密码(如未改密码,则为默认的123)--找到需要加密的文件--选项--加密(多个文件加密,则先进行标记,然后加密)。电话精灵只能加密文件,不能加密文件夹,加密后的文件,用Y-管理器或Q-管理器可以查看到,但不能打开,解密时只需进入电话精灵的文件管理,点选项后选解密即可。
安卓手机怎么打开加密的rar文件?
在手机上打开加密的rar文件首先要在手机上下载一个“ZArchiver Pro 0.8.4”文件,还有解压加密的rar文件需要解压密码,具体操作方法如下:
第一步:打开手机上下载好的“ZArchiver Pro”软件。
第二步:打开软件之后,在软件里找到加密的rar文件位置。
第三步:点击加密的rar文件,这时软件会弹出一个窗口,再点击“解压到当前目录”。
第四步:因为这个rar文件是加密的,所以这时会弹出一个窗口要你输入密码,输入密码之后点击确定。
第五步:等待软件解压文件。
第六步:软件解压完成之后,会在你放加密rar文件的位置生成一个文件夹,你要解压的东西就在里面了。
在Android可以对pdf文件进行加密和解密吗
加密方法:1、打开一个任意的PDF文档; 2、选择菜单栏的“文档”; 3、选择“文档”里的“安全性”一栏; 4、再选择“安全性”里的“显示本文档的安全性设置”一栏 5、这样进入了“文档属性”对话框,用鼠标点击一下“安全性方法”,就会出现一个下拉菜单,然后选择“口令安全性”;6、这样进入“口令安全性—设置”对话框,这样有二处可供选择: a:“要求打开文档口令”。如果用鼠标在小框内点击一下,这样就会把它勾上,然后输入密码——确认,当别人点击这个文件时,就会弹出“请输入口令”的对话框,如果不知道密码就看不见里面的内容的。 b:“使用口令来限制文档的打印和编辑以及它的安全性设置”,如果用鼠标在小框内点击一下,这样就会把它勾上,然后输入密码——确认。