messagedigest - sha512 android




Поддерживает ли каждый телефон Android SHA-256 (2)

Итак, прочитав этот пост: Как я могу рассчитать хэш SHA-256 строки в Android?

и документы: http://developer.android.com/reference/java/security/MessageDigest.html

Мне любопытно; какие телефоны будут поддерживать SHA-256? В документах строка о «NoSuchAlgorithmException» заставляет меня думать, что некоторые телефоны не поддерживают все алгоритмы. Прежде чем я начну реализовывать это для приложения и ожидаю, что он будет работать одинаково на всех телефонах, я хочу знать, знает ли кто-нибудь об этом ...?

Мне странно, что класс MessageDigest не имеет некоторых констант для выбора алгоритма, который вы хотите использовать.


SHA-256withRSA не поддерживается в старых версиях Android (это подтверждено в Android 4.0.3, 4.1.1). Я столкнулся с этой проблемой при использовании АОЭП. Алгоритмом дайджеста, возвращаемым сервером SCEP, является SHA-256. Но SHA-256withRSA не присутствует ни в каких по умолчанию SecurityProviders в этих версиях Android. Нашел соответствующую ссылку: Какие версии Android поддерживают алгоритмы подписи пакетов?

Эта ссылка показывает, что SHA-256withRSA был добавлен позже: https://android-review.googlesource.com/44360


Добавьте NoSuchAlgorithmException, как показано ниже:

public static String SHA256 (String text) throws NoSuchAlgorithmException {

    MessageDigest md = MessageDigest.getInstance("SHA-256");

    md.update(text.getBytes());
    byte[] digest = md.digest();

    return Base64.encodeToString(digest, Base64.DEFAULT);
}




message-digest