您的位置:首页 > 移动开发 > Android开发

Android静态安全检测 -> Hash算法不安全

2016-07-25 15:20 441 查看

Hash算法不安全 - MessageDigest.getInstance方法


一、API


1. 继承关系


【1】java.lang.Object

【2】java.security.MessageDigestSpi

【3】java.security.MessageDigest


2. 主要方法


【1】getInstance(String algorithm)


【2】getInstance(String algorithm, String provider)


【3】getInstance(String algorithm, Provider provider)


【4】其他方法


https://developer.android.com/reference/java/security/MessageDigest.html


3. 示例


【1】使用MD5哈希算法的语句




【2】Android提供的MessageDigest算法




【3】参考链接


http://hubingforever.blog.163.com/blog/static/171040579201210781650340/

二、触发条件


1. 调用MessageDigest类的getInstance方法


【1】对应到smali语句的特征

       invoke-static {v1}, Ljava/security/MessageDigest;->

            getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;


2. 寄存器赋值的判断

     const-string v1, "MD5"

     const-string v1, "SHA-1"

三、漏洞原理


【1】使用不安全的Hash算法(MD5/SHA-1)加密信息,存在被破解的风险


【2】更多内容


http://www.droidsec.cn/android应用安全开发之浅谈加密算法的坑/

四、修复建议


【1】建议使用SHA-256等安全性更高的Hash算法

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息