在Android中,使用MessageDigest时,是否保证可以使用MD5?

8

我想知道在所有 Android 设备中是否保证 MD5 摘要算法可用,以便在忽略 MessageDigest.getInstance("MD5") 可能引发的已检查异常之前进行。


如果这是一个新应用程序并且您需要哈希以确保安全性,那么您应该不再使用MD5,因为其安全性已经受到严重威胁。 - Henry
我正在使用MD5对URL进行哈希,仅用于内部缓存目的,没有安全问题。 - Daniel
2个回答

11

我在一些设备上收到了java.security.NoSuchAlgorithmException: MessageDigest MD5 implementation not found的错误信息。以下是设备列表:

GT-I8190
GT-I9100
GT-P3100
GT-S7562
HTC EVO 3D X515m
HTC Sensation 4G
HTC Sensation XL with Beats Audio X315b
LGL86C
LT22i
LT25i
LT26i
LT26ii
LT29i
SAMSUNG-SGH-I727
SGH-T769
SHV-E160K
SM-T211
ST21i
ST23i
ST26i
T7

还有其他设备。

这主要是印度尼西亚的统计数据。 有趣的是,这个统计数据由Crittercism提供,并且异常也是由Crittercism抛出的(看起来它在最新版本中使用MD5)。


5
Android JCE(Java加密扩展)基于bouncycastle实现但被精简。bouncycastle提供了多种不同的MessageDigest,可以在这里找到。不能保证每个Android设备都支持MD5,但它非常普遍,并且可能会在每个设备上支持,因为它在bouncycastle中得到了支持。如果要知道设备是否支持MD5,则可以检查设备支持的算法。更多信息请参见此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接