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算法
相关文章推荐
- asp MD5加密方式使用建议
- C语言压缩文件和用MD5算法校验文件完整性的实例教程
- 浅谈C#中Md5和Sha1两种加密方式
- 基于C#对用户密码使用MD5加密与解密
- Linux系统递归生成目录中文件的md5的方法
- 在C#中生成与PHP一样的MD5 Hash Code的方法
- asp.net实现md5加密
- C#实现的字符串转MD5码函数实例
- Java Web开发之MD5加密用法分析
- C#计算字符串哈希值(MD5、SHA)的方法小结
- php 的加密函数 md5,crypt,base64_encode 等使用介绍
- PHP中MD5函数使用实例代码
- php md5下16位和32位的实现代码
- jquery插件开发之实现md5插件
- Java实现MD5加密的方法
- C#计算文件MD5校验的方法
- javascript实现base64 md5 sha1 密码加密
- 分享JavaScript与Java中MD5使用两个例子
- javascript客户端生成MD5值的函数代码
- 深入浅析Android手机卫士保存密码时进行md5加密