浅谈android 加密实现

一、android常用的加密方式

加密指的是客户端与服务器传输过程中对数据的安全性操作。常用的有对称加密AES和非对称加密RSA。

1、RSA加密,用1024位密钥长度为主。通过生成的私钥进行解密,公钥进行加密。统称服务器和客户端会有两对(公钥和私钥),

利用公钥加密生成的二进制数组,然后利用PKCS8编码进行编码之后,生成可读性的文本,才能供给代码使用。

2、AES加密,利用密钥随机库生成对应长度的密钥(通常128位),可以在密钥串中截取部分长度作为真是密钥进行文本加密,再将加密后的

(Base64编码)数据和随机生成的密钥发送至服务器。

3、APK加密,对于前两种都是对传输过程中数据的操作,而对于apk本身的加密处理,也就是对DEX的加密。本身市面上可能也有很多加固公司,可以提供不错的服务,达到APK加密的目的。对于能动手的同学,我们还是尽量自己动手搞定。


二、密钥常用的几种存储方式

通过调用API使密钥和数据内容进行加密运算,最终将得到的加密字符串传输到服务器端。对于Api内部具体如何实现的,需要跟踪查询。

我们做的更多是对密钥的安全性处理。针对不同的安全级别程度,由低至高,大致分为以下几种处理。

第一、用sharepreference存储密钥,随用随取。

第二、采取代码存储密钥或者代码段分段村粗密钥,放在内存中。

第三、采用so文件内部进行加密、解密、存储密钥。此种方法除专业人事再次破译。

第四、采用so文件内部对密钥进行处理,添加花指令,存储到普通文件中,当需要使用时,利用so文件提出花指令,并解密。


你可能感兴趣的:(浅谈android 加密实现)