Indem ich mich hier und im Internet im Allgemeinen umgesehen habe , habe ich Bouncy Castle gefunden . Ich möchte Bouncy Castle (oder ein anderes frei verfügbares Dienstprogramm) verwenden, um einen SHA-256-Hash eines Strings in Java zu generieren. Wenn ich mir ihre Dokumentation ansehe, kann ich anscheinend keine guten Beispiele dafür finden, was ich tun möchte. Kann mir hier jemand helfen?
java
bouncycastle
sha256
jce
knpwrs
quelle
quelle
digest
der interne Status zurückgesetzt; Wenn Sie es also erneut aufrufen, ohne es zuvor zu aktualisieren, erhalten Sie den Hash der leeren Zeichenfolge.digest
wieder zu String abrufen ?Dies ist bereits in den Laufzeitbibliotheken implementiert.
In einer JEE6 + -Umgebung kann man auch JAXB DataTypeConverter verwenden :
quelle
Sie benötigen nicht unbedingt die BouncyCastle-Bibliothek. Der folgende Code zeigt, wie dies mit der Funktion Integer.toHexString gemacht wird
Besonderer Dank geht an user1452273 aus diesem Beitrag: Wie wird ein String mit sha256 in Java gehasht ?
Mach weiter so !
quelle
Wenn Sie Hashcodes mit einem JCE-Anbieter verwenden, versuchen Sie zunächst, eine Instanz des Algorithmus abzurufen, aktualisieren ihn dann mit den Daten, die gehasht werden sollen, und rufen Sie Digest auf, um den Hash-Wert abzurufen.
Sie können den Digest verwenden, um eine Base64- oder Hex-codierte Version entsprechend Ihren Anforderungen zu erhalten
quelle
digest()
mit dem Eingabe-Byte-Array fortfahren und überspringenupdate()
?String.getBytes()
ohne Angabe einer Codierung. Derzeit kann dieser Code auf verschiedenen Plattformen unterschiedliche Ergebnisse liefern. Dies ist ein fehlerhaftes Verhalten für einen genau definierten Hash.Java 8: Base64 verfügbar:
quelle
Ich nehme an, Sie verwenden eine relativ alte Java-Version ohne SHA-256. Daher müssen Sie den BouncyCastle-Anbieter zu den bereits bereitgestellten "Sicherheitsanbietern" in Ihrer Java-Version hinzufügen.
quelle
quelle
return Hex.encodeHexString(digest)
stattdessen verwenden.Verwenden von Java 8
quelle
Dies funktioniert mit dem folgenden Paket "org.bouncycastle.util.encoders.Hex"
Es ist in Hüpfburg Glas.
quelle