Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.12.2021(UTC) Сообщений: 261  Откуда: Новосибирск Сказал(а) «Спасибо»: 78 раз Поблагодарили: 1 раз в 1 постах
|
Приветствую коллеги! Задача - получить хеш файла, полный аналог результата скрипта Код:
exec('/opt/cprocsp/bin/amd64/cpverify -mk ' . __FILE__ . ' -alg GR3411_2012_256', $output);
Пробую так Код:
fileContent = file.getBytes();
Security.addProvider(new JCP());
MessageDigest digest = MessageDigest.getInstance(JCP.GOST_DIGEST_2012_256_NAME, JCP.PROVIDER_NAME);
digest.update(fileContent);
return new String(digest.digest());
в результате bash скрипт возвращает 8B01AA5665B7DF3E180DF7279200786B06B5438B744C975D89140DF277218AEB а java строку в непонятной кодировке ��Ve��> �'�xk�C�tL�]� �w!�� судя по количеству символов - в первом это строка из кодов символов, во втором сами символы вопрос - как преобразовать к такому же виду как в bash скрипте?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,641   Сказал «Спасибо»: 569 раз Поблагодарили: 2288 раз в 1789 постах
|
Здравствуйте.
digest.digest() не как строку смотреть, а как набор байтов и для вывода использовать hex значения? |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.12.2021(UTC) Сообщений: 261  Откуда: Новосибирск Сказал(а) «Спасибо»: 78 раз Поблагодарили: 1 раз в 1 постах
|
Автор: Андрей *  Здравствуйте.
digest.digest() не как строку смотреть, а как набор байтов и для вывода использовать hex значения? Спасибо, получил что хотел код: Код:
fileContent = file.getBytes();
Security.addProvider(new JCP());
MessageDigest digest = MessageDigest.getInstance(JCP.GOST_DIGEST_2012_256_NAME, JCP.PROVIDER_NAME);
digest.update(fileContent);
byte[] digestArr = digest.digest();
StringBuilder hexString = new StringBuilder();
for (byte b : digestArr) {
hexString.append(String.format("%02X", b));
}
return hexString.toString();
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close