dbmaster
@dbmaster

Java — Цифровая подпись на Linux x64 не проверяется на Windows x32

Есть такая проблема — подписываю массив данных на ubuntu, а проверяем на windows x32.

Код подписи

byte[] encodedLicenseB = license.getEncoded();
byte[] licenseeB = license.getLicensee().trim().toUpperCase().getBytes("UTF-8");
Signature dsa = Signature.getInstance("SHA1withDSA");
dsa.initSign(getPrivateKey());
dsa.update(merge(0, encodedLicenseB, licenseeB));
byte[] signature = dsa.sign();


Код проверки

Signature dsa = Signature.getInstance("SHA1withDSA");
dsa.initVerify(getPublicKey());

byte[] licenseeB = licensee.trim().toUpperCase().getBytes("UTF-8");
dsa.update(= merge(0, encodedLicenseB, licenseeB));
return dsa.verify(signature);


dsa.verify выдаёт false.

подпись и проверка на одной машине работают. исключений нет.
Licensee — это простая строка без спец-символов.

по идее архитектура не должна влиять на подпись.

в чём может быть проблема?
  • Вопрос задан
  • 2750 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы