在我直接忽略MessageDigest.getInstance("MD5")
可能抛出的检查异常之前,我想知道MD5摘要算法是否保证在所有Android设备中可用。
我在一些设备上得到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配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)。
Android JCE (Java Cryptography Extension)是基于bouncycastle实现的,但是被剥离了。bouncycastle提供了大量不同的messageddigest,可以在这里找到。
不能保证每个Android设备都支持MD5,但它非常普遍,并且很可能在每个设备上,因为它在bouncycastle中得到了支持。如果您想知道设备是否支持MD5,可以查看设备支持的算法。