Est-ce que chaque téléphone Android soutien SHA-256
Donc, la lecture de ce post: Comment puis-je calculer le hachage SHA-256 d'une chaîne dans Android?
et les docs: http://developer.android.com/reference/java/security/MessageDigest.html
Je suis curieux; les téléphones soutiendra SHA-256? Dans les docs, la ligne à propos de la "NoSuchAlgorithmException' me fait penser que certains téléphones ne prennent pas en charge tous les algorithmes. Avant d'aller me mettre en œuvre ce pour une application et en espérant que cela fonctionne de la même manière sur tous les téléphones, je veux savoir si quelqu'un sait quelque chose à ce sujet...?
Je trouve ça étrange que le MessageDigest classe n'ont pas de certaines constantes de choisir l'algorithme que vous souhaitez utiliser.
- +1 Bonne question. Je suis entièrement d'accord qu'il devrait y avoir des constantes.
Vous devez vous connecter pour publier un commentaire.
Tous les appareils Android en charge SHA-256. Le
NoSuchAlgorithmException
indique que suite à une demande de l'algorithme n'a pas pu être trouvé et qu'il est nécessaire parce que la méthode prend unString
argument pour le nom de l'algorithme. Si vous avez passé dans "foo-256", la méthode du seul recours est de jeter unNoSuchAlgorithmException
parce que, pour des raisons au-delà de ma compréhension, il n'y a pas d'algorithme qui s'appelle "toto-256". En supposant que vous êtes de passage dans un nom, vous êtes sûr est un algorithme qui Android pouvez utiliser, vous ne verrez jamais cette exception.MessageDigest
est juste une entreprise criminelle commune, l'interface, pour être en mesure d'utiliser SHA-256, MD5 ou que ce soit, il doit y avoir unProvider
qui met en œuvre ces algorithmes. Android JCE fournisseur est dérivé de BouncyCastle et est connu pour être assez dépouillé, surtout sur les anciennes versions d'Android. Les fabricants font de personnaliser à la fois le cadre, parfois de manière assez agressive. Qui pourrait comprendre le système de l'entreprise criminelle commune fournisseur.Ajouter NoSuchAlgorithmException comme ci-dessous:
SHA-256withRSA n'est PAS pris en charge dans les anciennes versions d'android (vérifié le même dans Android 4.0.3, 4.1.1). J'ai rencontré ce problème lors de l'utilisation JSCEP. L'algorithme digest retourné par le serveur SCEP est SHA-256. Mais SHA-256withRSA n'est pas présent dans tout défaut SecurityProviders dans ces versions d'android. Trouvé un lien pertinent:
Les versions d'Android support package algorithmes de signature?
Ce lien montre que SHA-256withRSA a été ajouté plus tard:
https://android-review.googlesource.com/44360
Selon le Android Documentations pour MessageDigest, SHA-256 est pris en charge depuis l'API 1.