En regardant ici et sur Internet en général, j'ai trouvé Bouncy Castle . Je souhaite utiliser Bouncy Castle (ou un autre utilitaire disponible gratuitement) pour générer un Hash SHA-256 d'une chaîne en Java. En regardant leur documentation, je n'arrive pas à trouver de bons exemples de ce que je veux faire. Quelqu'un ici peut-il m'aider?
java
bouncycastle
sha256
jce
knpwrs
la source
la source
digest
l'état interne est réinitialisé; Ainsi, lorsque vous l'appelez à nouveau sans mettre à jour avant, vous obtenez le hachage de la chaîne vide.digest
à nouveau String?Ceci est déjà implémenté dans les bibliothèques d'exécution.
Dans un environnement JEE6 +, on peut également utiliser JAXB DataTypeConverter :
la source
Vous n'avez pas nécessairement besoin de la bibliothèque BouncyCastle. Le code suivant montre comment procéder à l'aide de la fonction Integer.toHexString
Un merci spécial à user1452273 de ce post: Comment hacher une chaîne avec sha256 en Java?
Continuez votre bon travail!
la source
Lorsque vous utilisez des hashcodes avec n'importe quel fournisseur jce, vous essayez d'abord d'obtenir une instance de l'algorithme, puis mettez-la à jour avec les données que vous souhaitez hacher et lorsque vous avez terminé, vous appelez digest pour obtenir la valeur de hachage.
vous pouvez utiliser le condensé pour obtenir une version encodée en base64 ou hexadécimale selon vos besoins
la source
digest()
avec le tableau d'octets d'entrée, en sautantupdate()
?String.getBytes()
sans spécifier un encodage. Actuellement, ce code peut donner des résultats différents sur différentes plates-formes - ce qui est un comportement cassé pour un hachage bien défini.Java 8: Base64 disponible:
la source
Je suppose que vous utilisez une version Java relativement ancienne sans SHA-256. Vous devez donc ajouter le fournisseur BouncyCastle aux «fournisseurs de sécurité» déjà fournis dans votre version java.
la source
la source
return Hex.encodeHexString(digest)
place.Utilisation de Java 8
la source
Cela fonctionnera avec le package suivant "org.bouncycastle.util.encoders.Hex"
C'est dans un pot de château gonflable.
la source