2013-08-15 8 views
1

Я использую node.js 0.10.12. Я создал 2048-разрядные пары ключей RSA, которые я локально храню как .pem-файлы.Node.js Встроенный криптографический код: RSA-дешифрование

Используя встроенную библиотеку 'crypto', которая поставляется с узлом, я пытаюсь расшифровать блок данных, зашифрованный открытым ключом RSA, упомянутым выше.

Я получил это далеко:

var privateKey = fs.readFileSync('private.pem', { encoding: 'utf8' }); 

var cryptOpt = { key: /* PEM encoded private key */ privKey }; 

var cred = crypto.createCredentials(cryptOpt); 

var rsa = crypto.createDecipheriv('rsa', cred.?key-in-binary-format?, cred.?initialization vector?); 

Я не уверен, что я на правильном пути здесь.

• Я не знаю, где ключ хранится в двоичной форме внутри «cred».

• Я не знаю, что ввести параметр инициализации-вектора.

Данные будут зашифрованы с использованием стандартных библиотек iOS, которые, насколько мне известно, не позволяют пользователю указывать вектор инициализации при шифровании с помощью RSA.

Я не был в состоянии извлечь много знаний и понимания от Node.js криптографических документов: http://nodejs.org/api/crypto.html

ответ

1

Поскольку нет никакого асимметричного шифрования происходит в nodejs, я думаю, вы больше или менее потеряны в лесу. Вам понадобится другая библиотека, если вы хотите зашифровать что-либо с помощью RSA. В документации openssl list-cipher-algorithms, что crypto.createCipher(algorithm, password) и crypto.createCipheriv(algorithm, key, iv) перечислены только симметричные алгоритмы, такие как AES и DES (и т. Д.). IV используется только для симметричных алгоритмов вообще в любом случае. Кажется, что nodejs поддерживает RSA-подпись и проверку.

Я действительно предлагаю углубиться в предмет, прежде чем продолжить путь развития.

+0

Да, я понял, что для RSA нет встроенной поддержки. Тот факт, что в классах: шифр/расшифровка в документации упоминается только обновление/окончательные вызовы, должно было поднять флаги в моем мозгу, но этого не произошло. С тех пор я нашел решение на GitHUB URSA, есть даже встроенная реализация: https://github.com/Obvious/ursa – zra

Смежные вопросы