2013-02-13 98 views
-1

我一直在思考如何安全的Android操作系统,当我问自己的问题,Windows和Linux系统在过去已被破解,并尝试搜索谷歌有关这个问题。遗憾的是,即使花了一半一天上它我不满意我通过互联网找到的东西。我想知道android安全和密码机制是如何工作的。如果有人可以分享任何东西,或直接我链接,将是有益的:)Android安全级别和密码机制

+1

什么*精确*您认为“android安全和密码机制”是? – CommonsWare 2013-02-13 17:12:18

+0

android os正在使用的密码机制。像在Unix中一样,密码使用数据加密标准进行加密。(网络安全相关的东西) – Alfred 2013-02-13 17:46:48

回答

0

Android的密码处理是在来源的详细的LockPatternUtils.java,接近行820:

public byte[] passwordToHash(String password) { 
    if (password == null) { 
     return null; 
    } 
    String algo = null; 
    byte[] hashed = null; 
    try { 
     byte[] saltedPassword = (password + getSalt()).getBytes(); 
     byte[] sha1 = MessageDigest.getInstance(algo = "SHA-1").digest(saltedPassword); 
     byte[] md5 = MessageDigest.getInstance(algo = "MD5").digest(saltedPassword); 
     hashed = (toHex(sha1) + toHex(md5)).getBytes(); 
    } catch (NoSuchAlgorithmException e) { 
     Log.w(TAG, "Failed to encode string because of missing algorithm: " + algo); 
    } 
    return hashed; 
} 

它看起来像一般的想法是强迫你猜测受MD5和SHA1约束的正确密码。这意味着一个坏人必须得到交叉点(不是联合)MD5和SHA-1哈希值。

不幸的是,MD5组件允许密码恢复。也许更好的策略是将MD5折叠到SHA-1中(以消除对MD5的裸露访问)。

顺便说一下,这个(TM)有一个错误报告:Lock Pattern/Password uses MD5 Hash (LockPatternUtils.java)