Данные закрытого ключа подписывают с Java на PHPJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Данные закрытого ключа подписывают с Java на PHP

Сообщение Anonymous »

Мне нужно написать программу PHP, чтобы выполнять ту же функцию с функцией знака Java, что и ниже

Код: Выделить всё

public static String sign(byte[] data, String privateKey) throws Exception {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(data);
byte[] hashData = messageDigest.digest();

StringBuffer hexString = new StringBuffer();

byte[] keyBytes = Base64Utils.decode(privateKey.getBytes());
PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateK = keyFactory.generatePrivate(pkcs8KeySpec);
Signature signature = Signature.getInstance("NONEWithRSA");
signature.initSign(privateK);
signature.update(hashData);
byte[] sign = signature.sign();
return Base64.getEncoder().encodeToString(sign);
}
Я провел небольшое исследование в Google и пытаюсь написать PHP-код следующим образом:

Код: Выделить всё

public function sign($data, $privateKeyString){

$privateKey = openssl_pkey_get_private($privateKeyString);
$hashData = hash("sha256",$data);
openssl_sign($hashData, $signature, $privateKey);
openssl_free_key($privateKey);
return base64_encode($signature);

}

Я пытаюсь передать один и тот же ключ с данными, скажем «Привет», как функции, так и тестированию.
хеш-данные сопоставлены, но подпись результата различна.
Кто-нибудь может определить, почему возвращаемая подпись base64 различается между Java и php?

Подробнее здесь: https://stackoverflow.com/questions/642 ... ava-to-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»