开发中,最让人头疼的莫过于对数据的保密了。谁也不希望自己辛辛苦苦做的服务器被人利用,也不希望自己的数据资源被免费泄露。另外,对于核心代码的保护,也是件头疼的事情,保护不好,显然会被盗版和破解,恶意添加或去除广告。

  异或加密是最容易理解最简单的加密方法了,简单到很容易破解的地步。只要能拦截到服务器发回来的数据,并看到解密后的数据,就很容易计算出密码。像这样坑爹的加密方法,当然不在考虑范围内。

和SHA加密是不可逆的,相当于指纹,常用作验证。对于数据加密的话,不做考虑。

、AES、DES加密方法都是可逆的,而且都可以使用密钥,可以用作数据加密。不过DES所能使用的密钥相对较小(56位),几年前有人采用网络联合运算的方式成功地破译了DES加密的数据,新版本的DES加密效率又太低。相对来说,AES使用的密钥更长,内部有更简洁精确的数学算法,而加密数据只需一次通过(即加密过程只需要遍历一次数据,新版的DES需要三次)。RSA公司是已广泛运用的数据加密算法和开发工具包的开发商,已经宣布支持AES。当然,三种加密方法都是很不错的,都可以选用。至于哪个最好,看了上面的介绍,估计也不言而喻了吧。

Java里的代码,都是不安全的。即便是混淆过,通过报错上溯法,还是可以找到的。

NDK来调用,这样才算安全。关键是写在底层,如何保证调用方是自己的应用,而不是被别人盗版的或是破解的,这也是一个问题。

  我们知道,签名是不可伪造的,这就为我们提供了解决的方案。我们在底层获得签名的哈希值,并用此哈希值与自己签名应有的哈希值比较,成功则允许调用核心代码,不成功则不允许调用,返回空即可。

RSA、AES、DES加密方法,另有文件(JNI获得签名及加密方法)详述。