Посмотрев здесь, а также в Интернет в целом, я нашел Надувной Замок . Я хочу использовать Bouncy Castle (или другую свободно доступную утилиту) для генерации хэша SHA-256 строки в Java. Глядя на их документацию, я не могу найти хороших примеров того, чем я хочу заниматься. Кто-нибудь здесь может мне помочь?
java
bouncycastle
sha256
jce
knpwrs
источник
источник
digest
внутреннее состояние сбрасывается; поэтому, когда вы вызываете его снова, не обновляя ранее, вы получаете хеш пустой строки.digest
получить строку в String?Это уже реализовано в библиотеках времени выполнения.
В среде JEE6 + можно также использовать JAXB DataTypeConverter :
источник
Вам не обязательно нужна библиотека BouncyCastle. В следующем коде показано, как это сделать с помощью функции Integer.toHexString.
Особая благодарность пользователю 1452273 из этого поста: Как хешировать строку с помощью sha256 в Java?
Продолжайте хорошую работу !
источник
При использовании хэш-кодов с любым поставщиком jce вы сначала пытаетесь получить экземпляр алгоритма, затем обновляете его данными, которые хотите хешировать, и когда вы закончите, вы вызываете дайджест, чтобы получить значение хеш-функции.
вы можете использовать дайджест, чтобы получить версию в кодировке base64 или hex в соответствии с вашими потребностями
источник
digest()
массиву входных байтов, пропускаяupdate()
?String.getBytes()
без указания кодировки. В настоящее время этот код может давать разные результаты на разных платформах, что является нарушением поведения для четко определенного хеша.Java 8: Base64 доступен:
источник
Я полагаю, вы используете относительно старую версию Java без SHA-256. Таким образом, вы должны добавить поставщика BouncyCastle к уже предоставленным «поставщикам безопасности» в вашей версии Java.
источник
источник
return Hex.encodeHexString(digest)
вместо него.Использование Java 8
источник
Это будет работать со следующим пакетом "org.bouncycastle.util.encoders.Hex"
Это в банке с надувным замком.
источник