Получение SHA256 в формате base64 с помощью DigestUtils - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь получить хэш строки SHA256 в формате base64.

Я использую DigestUtils из org.apache.commons.codec.digest. Я не знаю, как получить формат Base64, хотя могу получить формат Hex.

Sha256String = org.apache.commons.codec.digest.DigestUtils.sha256Hex(StringText);

Используя "a" в качестве строки теста, эта строка возвращает

ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb

Но на самом деле мне нужно ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs.

Я читаю без перерыва и не могу понять, как это сделать.

Теперь я пытаюсь это

Byte[] digest = org.apache.commons.codec.digest.DigestUtils.sha256(StringText);

И это мне нужно сохранить в переменной, поэтому я пытаюсь это

String OutStr = new String(digest);

Без удачи. Я не знаю, где еще искать справку, потому что я много раз читал все поиски в Google (и если ответ есть, я его не вижу)

Я не пишу код на Java, но на этот раз мне нужно, чтобы это заработало! Любовь!

1 Ответ

0 голосов
/ 16 апреля 2019

Вы можете использовать метод Base64.Encoder.encodeToString() для преобразования байтового массива в Base64.

Вот краткий пример: (поскольку я не знаком с вашим утилитой, просто замените некоторые данные наваш байтовый массив)

byte[] data = someData;
MessageDigest digester = MessageDigest.getInstance("SHA-256");
digester.update(data);
String base64Encoded = Base64.getEncoder().encodeToString(digester.digest());
...