Есть такая проблема — подписываю массив данных на 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 просмотров