javascript — чтение и использование закрытого ключа для подписи данных в узле js [OpenSSL & amp; Пример PHP]

Некоторое время я пытался переписать php-код в node.js, но столкнулся с проблемой.

Это код PHP, на котором я застрял (немного измененный):

$fp = fopen($privateKeyFileName, "r");
$priv_key = fread($fp, 8192);
fclose($fp);

echo "PRIVATE KEY: <br/><br/>";
var_dump($priv_key);$pkeyid = openssl_pkey_get_private($priv_key, $privateKeyPassword);

echo " <br/><br/>PRIVATE KEY ID: <br/><br/>";
var_dump($pkeyid);

openssl_sign($message, $signature, $pkeyid);
openssl_free_key($pkeyid);

echo " <br/><br/>SIGNATURE: <br/><br/>";
var_dump($signature);

$message .= $signature;

echo " <br/><br/>END MESSAGE: <br/><br/>";
var_dump($message);

Часть, на которой я застрял: openssl_pkey_get_private, Я не уверен, как повторить это. Я пытался пропустить это, пусть crypto (nodejs) делают работу, но без везения.

Самое интересное, что нужно сделать: каждый раз, когда я подписываю сообщение, $signature имеет 128 символов (строка). Это требование, и это моя проблема в узле.

Это мой код nodejs:

function signData(data) {
var sign = crypto.createSign('RSA-SHA256');
sign.update(data);
var signed = sign.sign(privateKey);
return signed;
}

И еще одна вещь, это RSA-SHA256 должен быть SHA1 с RSA. Этот пример никогда не генерирует ровно 128 символов строки. Он возвращает буфер, и независимо от того, как я его анализирую или конвертирую, я не могу выполнить требование. Я использую один и тот же закрытый ключ в обоих примерах.

Есть идеи?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]