Я пытаюсь сделать эквивалент для следующей функции PHPКак подписать ж/секретный ключ в Node.js
openssl_private_encrypt
использовать свой закрытый ключ для входа в строке
Вот что Я делаю
var signer = crypto.createSign('RSA-SHA256').update(timestamp + '|' + userId);
var signature = signer.sign(privKey, 'base64');
Мой первый вопрос - что это значит, когда RSA и SHA256 собраны вместе? Я понимаю, что это значит зашифровать что-либо с помощью закрытого ключа RSA или хешировать что-то с помощью SHA256. Но я не могу понять, что значит иметь этих двух вместе.
Я положил его туда, потому что для createSign требуется строковый параметр («RSA» не поддерживается), и RSA-SHA256 - это самая близкая вещь, которую я нашел.
Мой второй вопрос заключается в том, как я
openssl_private_encrypt
в Node.js?
Привет, большое спасибо за объяснение. Теперь все ясно. Но я фактически работаю над проектом совместной работы с компаниями. И их документы только дали пример «openssl_private_encrypt» в PHP. У меня нет выбора, кроме как идти по этому маршруту. – Max
Вы знаете, что «openssl_private_encrypt» делает хэш-расчет до подписания, и если да, то какой хэш-алгоритм? Большое спасибо! – Max
Нет, нет, он просто выполняет PKCS # 1 padding. См. здесь, http://www.sitepoint.com/forums/showthread.php?610882-OpenSSL-Private-Key-Encryption. Обратите внимание, что PKCS # 1 использует 11 байтов служебных накладных расходов для схемы подписи 1,5 (без хэш-структуры *, то есть). Таким образом, пользователь, вероятно, использовал 128-байтный (1024-разрядный) размер ключа. –