Задать вопрос
@BlueStinger

Как получить в PHP тот же результат что и в OpenSSL?

Друзья, доброго времени суток!
Имеется набор данных из которых необходимо вычислить hash > зашифровать их приватным ключом > кодировать в base64.
В OpenSSL проблем нет, все работает часы и проходит проверку на хосте:
openssl.exe dgst -sha256 -sign privateKey.pem -out sign.txt data.txt
openssl.exe base64 -e -in sign.txt -out sign64.txt

Но если я пытаюсь сделать этот же цикл в PHP, результат я получаю, но он не соответствует результату из OpenSSL и соответственно не проходит проверку на хосте:
$hash = hash_file('sha256', 'data.txt');
openssl_private_encrypt($hash, $encrypted, $privateKey);
echo base64_encode($encrypted);

Буду благодарен за подсказку или за статью почитать!!
  • Вопрос задан
  • 226 просмотров
Подписаться 3 Средний Комментировать
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
https://stackoverflow.com/questions/34496764/php-i...

$data = file_get_contents("data");
$pkeyid = openssl_pkey_get_private("file://key.pem");
openssl_sign($data, $signature, $pkeyid, OPENSSL_ALGO_SHA256);
openssl_free_key($pkeyid);
print base64_encode($signature);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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