SHA-2 не сам алгоритм.Википедия:
SHA-2 - это набор криптографических хеш-функций (SHA-224, SHA-256, SHA-384, SHA-512)
Я думаю, что всено SHA-224 должен быть доступен.
public static String SHA2(String text)
throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest mesd = MessageDigest.getInstance("SHA-256");
byte[] bytes = text.getBytes("iso-8859-1");
mesd.update(bytes, 0, bytes.length);
byte[] sha2hash = mesd.digest();
return convertToHex(sha2hash);
}
Кроме того, создаваемый вами байтовый массив не требуется.Метод digest()
возвращает сам массив.Оператор присваивания никогда не записывает результат в существующий массив.Если вы не укажете индекс конечно.
Еще одна вещь.Я бы не использовал text.length () при вызове update(..)
, так как он не обязательно совпадает с длиной результирующего байтового массива.Это в основном относится к многобайтовому кодированию символов, например UTF-8.Это также может произойти для персонажей, которые не могут быть сопоставлены, в зависимости от выбранной вами стратегии.Ну, главное, хотя: вам не нужно знать, о чем я говорю.Для сохранения просто используйте массив .length
:)