android 可以为 MD5 抛出 NoSuchAlgorithmException

Can android throw NoSuchAlgorithmException for MD5

Android 的 MessageDigest 页面说从第一天起就支持 MD5 - https://developer.android.com/reference/java/security/MessageDigest

但是 MessageDigest.getInstance("MD5") 方法可以抛出 NoSuchAlgorithmException 并且没有 getMD5Instance 方法可以保证它。 MD5 是否有可能至少在 23(棉花糖)之后的 android 版本中不可用?感谢回复。

还有另一个线程讨论了这个问题,但已有 7 年历史,在 android 2.x 设备(姜饼)上报告了一些事件。 Is MD5 guaranteed to be available for use with MessageDigest in Android?

But the MessageDigest.getInstance("MD5") method can throw NoSuchAlgorithmException

正确。这就是 Java JDK 定义 MessageDigest 的方式。 class 不是 Android SDK 的自定义。

there is no getMD5Instance method which would have made it guaranteed

正确。据推测,JDK 的设置是为了能够在未来停止过时的算法。

Is there any chance MD5 won't be available at least in newer android versions later than 23 (Marshmallow)?

如果许多当前设备不支持 MD5,我会感到惊讶。然而:

  • 有 26,000 多种设备型号,以及可以为所欲为的设备制造商,我们不能假设 一切 都支持 MD5;和

  • 我们不知道未来会发生什么——MD5 可能会因为某种原因被删除