十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
基本的单向加密算法:
目前创新互联公司已为超过千家的企业提供了网站建设、域名、网络空间、网站运营、企业网站设计、忠县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
BASE64 严格地说,属于编码格式,而非加密算法
MD5(Message Digest algorithm 5,信息摘要算法)
SHA(Secure Hash Algorithm,安全散列算法)
HMAC(Hash Message Authentication Code,散列消息鉴别码)
复杂的对称加密(DES、PBE)、非对称加密算法:
DES(Data Encryption Standard,数据加密算法)
PBE(Password-based encryption,基于密码验证)
RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)
DH(Diffie-Hellman算法,密钥一致协议)
DSA(Digital Signature Algorithm,数字签名)
ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)
代码参考:
/**
* BASE64加密
*
* @param key
* @return
* @throws Exception
*/
public static String encryptBASE64(byte[] key) throws Exception {
return (new BASE64Encoder()).encodeBuffer(key);
}
/**
* MD5加密
*
* @param data
* @return
* @throws Exception
*/
public static byte[] encryptMD5(byte[] data) throws Exception {
MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);
md5.update(data);
return md5.digest();
}
/**
* SHA加密
*
* @param data
* @return
* @throws Exception
*/
public static byte[] encryptSHA(byte[] data) throws Exception {
MessageDigest sha = MessageDigest.getInstance(KEY_SHA);
sha.update(data);
return sha.digest();
}
}
/**
* 初始化HMAC密钥
*
* @return
* @throws Exception
*/
public static String initMacKey() throws Exception {
KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);
SecretKey secretKey = keyGenerator.generateKey();
return encryptBASE64(secretKey.getEncoded());
}
/**
* HMAC加密
*
* @param data
* @param key
* @return
* @throws Exception
*/
public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
return mac.doFinal(data);
}
APK在PC上面就被看作一个压缩格式文件,在手机上面它就算一个可执行格式文件。两种格式对它的读取要求也有区别,所以说利用这个区别来实现伪加密。对PC端来讲伪加密的APK没法被解包无法被反编译,但是对android系统来说它完全不会影响正常的安装运行(对4.2以前的系统)。
伪加密的原理:读取APK的字节,找到连续4位字节标记为”P K 01 02”的后第5位字节,如果是0表示不加密,如果是1就表示加密(伪加密就强行改成1 反伪加密就是把1改成0就可以了)。
2
伪加密前和伪加密后的对比图如下:
伪加密前:
3
伪加密后:
END
使用第三方平台加密
步骤如下:
登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!
2
爱加密作为移动安全行业的第三方平台,为Android APP移动应用提供专业的加固保护方案,包括DEX文件保护、资源文件保护、XML主配文件保护、防二次打包保护、so文件保护、内存保护、高级混淆等,全方位保护Android App,防止被反编译、破解等,维护广大开发者朋友的切身利益!
APK加固是对APK代码逻辑的一种保护,原理是将APK文件进行某种形式的转换,包括不限于隐藏、混淆、加等操作,进一步保护软件的利益不受损坏。
常见APK应用加固主要有DEX文件、SDK文件、SO文件加固这三类。DEX加固技术包括混淆代码、整体DEX加固、拆分DEX加固、虚拟机加固、Java2C加固,当前性能最强的加固方案是Java2c,将java指令转成c/c++指令,并做虚假控制流、字符串加密等处理,逆向难度最高。SO库文件一般存放着核心算法、重要协议等重要信息。SO加固大概可以分为有源保护和无源保护,有源保护分为自解密、混淆、源码VMP等,无源保护分为加壳、VMP保护。
APK加固后,可以降低被逆向破解风险,目前有些云安全平台提供系统的APP加固服务,如网易易盾、360加固、阿里云等,想要系统提升APK安全等级可以了解下。
代码审计:顾名思义就是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。